2010-09-07 13 views
5

Estoy usando la biblioteca oficial JSON para mi anuncio de proyecto Java. He notado algo extraño.Cadenas JSON y cómo manejar caracteres escapados

Si tengo un JSON como este:

{ 
    "text": "This is a multiline\n text" 
} 

y trato de obtener la cadena como esta:

System.out.println(jsonObject.getString("text")); 

que conseguir esto en la salida:

This is a multiline\n text 

En lugar de:

This is a multiline 
text 

¿Alguien sabe de la forma correcta de manejar los caracteres especiales como \ n y \ t? Siempre podría reemplazar cada uno, pero tendría que manejarlos todos uno por uno.

Respuesta

1

Su ejemplo anterior es correcta y se muestra correctamente, sin embargo hay "legible" \ n (que sería \ n en una cadena) y hay caracteres escapados \ n (que serían los crudos \ n en una cadena). Supongo que cualquier biblioteca que esté utilizando generará el código legible por humanos en lugar del código de escape adecuado.

Pruebe: json_obj.text.replace(/\\n/g,"\n"); para volver a convertir la cadena.

+0

como dije en mi pregunta, podría reemplazar todos estos casos, pero luego lo haría tengo que manejar todos los personajes especiales como \ t. Me preguntaba si había una forma "correcta" de manejar este caso. –

+0

Veo un montón de bibliotecas compatibles en http://www.json.org/ ¿cuál es el que está usando? – Rudu

+0

el "oficial". la org.json one ... –

4

No se han escapado correctamente su nueva línea, que debe ser:

{ 
    "text": "This is a multiline\\n text" 
} 
+0

veo ... El problema es que obtengo mis cadenas json de un servicio web y así es como las atienden. ¿Conoces una forma general de convertir una cadena como la que especifiqué en el formato correcto? –

+0

La nueva línea escapada en el código es una barra diagonal inversa seguida del carácter n y no una secuencia de escape. – Rudu

+0

obtengo lo que es el "problema". Solo estoy preguntando si hay una forma automatizada de manejar la cadena, ya que se manejaría si la escribiera como está en un archivo java ... –

Cuestiones relacionadas