2012-01-20 57 views
6

Necesito agregar una URL normalmente en el formato http: \ somewebsite.com \ somepage.asp. Cuando creo una cadena con la URL anterior y añadir a JSON objeto JSONCómo agregar una cadena URL en un objeto JSON

usando

json.put("url",urlstring); 

está añadiendo un extra "\" y al comprobar la salida es como http:\\\\somewebsite.com\\somepage.asp

Cuando Doy la URL como http://somewebsite.com/somepage.asp la salida json es http:\/\/somewebsite.com\/somepage.asp

¿Puede ayudarme a recuperar la URL como está, por favor?

Gracias

+3

¿Por qué utiliza barras invertidas en su URL? Las URL solo usan barras diagonales. La primera URL tampoco es sintácticamente correcta. Debería ser algo así como 'http: // somewebsite.com/somepage.asp'. – Jonathan

+2

Si está viendo cadena JSON producida por el serializador, está bien que se escapen las barras. Las barras se desamarcarán cuando la cadena JSON se deserialice. – zysoft

Respuesta

6

Su biblioteca JSON escapa automáticamente caracteres como barras diagonales. En el extremo receptor, tendrás que eliminar esas barras invertidas usando una función como replace().

He aquí un ejemplo:

string receivedUrlString = "http:\/\/somewebsite.com\/somepage.asp";<br /> 
string cleanedUrlString = receivedUrlString.replace('\', ''); 

cleanedUrlString debería ser "http://somewebsite.com/somepage.asp".

Espero que esto ayude.

Referencia: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace(char,%20char)

3

respuesta de Tichodroma ha dado en el clavo. Puede resolver el "problema" almacenando URL válidas.


Además, el formato JSON requiere que las barras invertidas en las cadenas se escaparon con una segunda barra invertida. Si la 2da barra invertida se omite, el resultado es JSON no válido. Consulte los diagramas de sintaxis de JSON en http://www.json.org

El hecho de que las barras diagonales inversas dobles le estén dando problemas en realidad significa que el software que está leyendo los archivos está roto. Un analizador JSON correctamente escrito desalojará automáticamente las cadenas. El sitio al que he vinculado enumera muchas bibliotecas de análisis JSON escritas en varios idiomas. Debe usar uno de estos en lugar de tratar de escribir el código de análisis JSON usted mismo.

Cuestiones relacionadas