2012-01-20 16 views
6

Devo aggiungere un URL in genere nel formato http: \ somewebsite.com \ somepage.asp. Quando creo una stringa con l'URL sopra e aggiungerlo al JSON oggetto JSONCome aggiungere una stringa URL in un oggetto JSON

utilizzando

json.put("url",urlstring); 

è aggiungendo un extra "\" e quando posso controllare l'output è come http:\\\\somewebsite.com\\somepage.asp

Quando Fornisco l'URL come http://somewebsite.com/somepage.asp l'uscita JSON è http:\/\/somewebsite.com\/somepage.asp

Potete aiutarmi a recuperare l'URL così com'è, per favore?

Grazie

+3

Perché stai usando backslash nel tuo URL? Gli URL utilizzano solo le barre di avanzamento. Anche il primo URL non è sintatticamente corretto. Dovrebbe essere qualcosa come 'http: // somewebsite.com/somepage.asp'. – Jonathan

+2

Se stai guardando la stringa JSON prodotta dal serializzatore, è corretto che le barre siano sfuggite. Le barre non verranno sfoltite quando la stringa JSON viene deserializzata. – zysoft

risposta

6

La libreria JSON esegue automaticamente l'escape di caratteri come barre. Sul lato ricevente, dovrai rimuovere quei backslash usando una funzione come replace().

Ecco un esempio:

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

cleanedUrlString dovrebbe essere "http://somewebsite.com/somepage.asp".

Spero che questo aiuti.

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

3

risposta di Tichodroma ha inchiodato. È possibile risolvere il "problema" memorizzando URL validi.


Inoltre, il formato JSON richiede che backslash nelle stringhe sono fuggiti con una seconda barra rovesciata. Se il 2 ° backslash viene omesso, il risultato è JSON non valido. Fare riferimento ai diagrammi di sintassi JSON al numero http://www.json.org

Il fatto che i doppi backslash ti diano effettivamente dei problemi significa che il software che sta leggendo i file è rotto. Un parser JSON scritto correttamente svuoterà automaticamente le stringhe. Il sito che ho collegato sopra elenca molte librerie di parser JSON scritte in molte lingue. Dovresti usare uno di questi invece di provare a scrivere il codice di analisi JSON da solo.

Problemi correlati