Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problemi con caratteri speciali dal JSON

    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"??

  2. #2
    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

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    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"??
    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.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    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ì:
    codice:
    BufferedReader rd = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    ma il json è generato da un plugin di wordpress, e quindi non so dietro cosa faccia.
    so solo che mi arrivano così.

    cmq seguendo il suggerimento di andbin, ho usato Apache Commons Lang ed ho risolto:
    codice:
    map.put("titolo", StringEscapeUtils.unescapeHtml4(jo.getString("title_plain")));
    adesso i dati si vedono senza caratteri speciali.

    grazie ad entrambi!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.