Sono in grado di utilizzare la libreria json-simple in Java e ho utilizzato entrambi gli esempi e decoding. La duplicazione degli esempi di codifica andava bene, ma non sono stato in grado di far funzionare quelli di decodifica con JSON di tipo misto.Decodifica stringa JSON in Java
Uno dei miei problemi è che ci sono troppe classi nella libreria che non sono adeguatamente documentate e per le quali non ho la fonte (per poter leggere e capire il loro scopo). Di conseguenza, sto lottando per capire come utilizzare molte di queste classi.
Dopo aver letto questo esempio:
String jsonText = "{\"first\": 123, \"second\": [4, 5, 6], \"third\": 789}";
JSONParser parser = new JSONParser();
ContainerFactory containerFactory = new ContainerFactory(){
public List creatArrayContainer() {
return new LinkedList();
}
public Map createObjectContainer() {
return new LinkedHashMap();
}
};
try {
Map json = (Map)parser.parse(jsonText, containerFactory);
Iterator iter = json.entrySet().iterator();
System.out.println("==iterate result==");
while(iter.hasNext()) {
Map.Entry entry = (Map.Entry)iter.next();
System.out.println(entry.getKey() + "=>" + entry.getValue());
}
System.out.println("==toJSONString()==");
System.out.println(JSONValue.toJSONString(json));
} catch(ParseException pe) {
System.out.println(pe);
}
dal json-simple official decoding tutorial, ho cercato di decodificare questo JSON:
{
"stat":{
"sdr": "MAC address of FLYPORT",
"rcv": "ff:ff:ff:ff:ff:ff",
"time": "0000000000000",
"type": 0,
"subt": 0,
"argv": [
{"type": "6","val": "NetbiosName"},
{"type": "6","val": "MACaddrFlyport"},
{"type": "6","val": "FlyportModel"},
{"type": "1","val": id}
]
}
}
Sto scrivendo seguente codice da decodificare:
String jsonString = "{\"stat\":{\"sdr\": \"aa:bb:cc:dd:ee:ff\",\"rcv\": \"aa:bb:cc:dd:ee:ff\",\"time\": \"UTC in millis\",\"type\": 1,\"subt\": 1,\"argv\": [{1,2},{2,3}]}}";
JSONObject jsonObject = new JSONObject(jsonString);
JSONObject newJSON = jsonObject.getJSONObject("stat");
System.out.println(newJSON);
Ma non funziona Infatti non sono riuscito a far funzionare l'esempio non modificato e gli autori originali non hanno spiegato il loro codice.
Qual è il modo più semplice per decodificare questo JSON come mostrato?
Possiamo vedere il codice per la decodifica di una statistica? –
Hai controllato con l'esempio 5 (gestore di contenuto simile a SAX Stoppable) in [tutorial di decodifica JSON ufficiale] (https://code.google.com/p/json-simple/wiki/DecodingExamples) Come posso vedere il codice è inteso per singolo dizionario (mappa)/matrice. Ma tu stai provando per il json con le mappe in una mappa (più mappe). Se sbaglio, correggimi – ram2013
@ ram2013: ya .. quello che ho bisogno di decodificare sono le mappe nelle mappe ... e immagino che questo sia uno di loro. come se ottenga il valore di "stat", posso usarlo per ulteriori decodifiche JSON. –