ciao!
interrogo un web service che espone i dati in formato JSON.
ho un problema con alcuni caratteri.
ad esempio questo: – o questo &
come posso fare per "tradurli"??
ciao!
interrogo un web service che espone i dati in formato JSON.
ho un problema con alcuni caratteri.
ad esempio questo: – o questo &
come posso fare per "tradurli"??
Io verificherei prima di tutto di stare usando il charset giusto nel connettermi al web service... Usi lo stesso charset in cui ti risponde il servizio?
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
Premessa: se un JSON che ti viene fornito contiene es.
"xyz": "blabla&blabla"
dal punto di vista del JSON è corretto sintatticamente. Ma contiene una stringa che ha a che fare con XML/HTML. Quindi il problema sarebbe a monte, in quanto sarebbe più sensato semplicemente "blabla&blabla"
Se non hai alcun controllo su come viene generato il JSON ... ti tocca decodificare queste entità, tramite replace specifici o magari più generalizzati usando le espressioni regolari. O se non ne hai voglia, con librerie specifiche, ad esempio la Apache Commons Lang ha la classe StringEscapeUtils che ha metodi unescapeHtml3, unescapeHtml4 e altri.
Ultima modifica di LeleFT; 25-01-2016 a 17:57
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ciao!
il db da cui prendo i dati è mysql.
il db e le tabelle sono tutti in utf-8.
e i dati li prendo così:
ma il json è generato da un plugin di wordpress, e quindi non so dietro cosa faccia.codice:BufferedReader rd = new BufferedReader(new InputStreamReader(is, "UTF-8"));
so solo che mi arrivano così.
cmq seguendo il suggerimento di andbin, ho usato Apache Commons Lang ed ho risolto:
adesso i dati si vedono senza caratteri speciali.codice:map.put("titolo", StringEscapeUtils.unescapeHtml4(jo.getString("title_plain")));
grazie ad entrambi!!
![]()