2010-11-10 17 views
81

Me di cuenta de que Gson convierte la cadena "<" en una secuencia de escape Unicode en la salida JSON. ¿Puedes evitar esto de alguna manera, o los caracteres como "<" y ">" siempre tienen que escapar en JSON?¿Se puede evitar que Gson convierta "<" and ">" en secuencias de escape unicode?

Considere este ejemplo que imprime {"s":"\u003c"}; Me gustaría simplemente {"s":"<"}.

public static void main(String[] args) { 
    Gson gson = new GsonBuilder().create(); 
    System.out.println(gson.toJson(new Foo())); 
} 

static class Foo { 
    String s = "<"; 
} 

Contexto: la pieza de JSON estoy creando no tiene nada que ver con páginas HTML o JavaScript incluso; solo se utiliza para pasar cierta información estructurada a otra pieza de software (incrustado en un dispositivo, escrito en C).

+1

¿Tiene GSON predeterminado para hacer eso? Whoa. Esa es la configuración predeterminada bastante extraña, aunque es perfectamente legal hacerlo desde la perspectiva de las especificaciones JSON. – StaxMan

+1

Sí, fue sorprendente para mí también. Afortunadamente, el [remedio] (http://stackoverflow.com/questions/4147012/can-you-avoid-gson-converting-and-in-unicode-escape-sequences/4147245#4147245) es fácil una vez que sepa dónde buscar . :) De lo contrario, después de un día de experiencia con él, encuentro a Gson una biblioteca realmente limpia y agradable, con una gran [guía del usuario] (http://sites.google.com/site/gson/gson-user-guide) también. ! – Jonik

+3

Esto también le sucede al carácter "=", que se convierte en "\ u003d". –

Respuesta

163

Necesita disable HTML escaping.

Gson gson = new GsonBuilder().disableHtmlEscaping().create(); 
+1

Sí, esto fue todo. ¡Gracias! – Jonik

+0

De nada. – BalusC

+0

sí! trabajando .. –

Cuestiones relacionadas