Dekodierung von JSON String in Java
Ich bin neu mit dem json-simple library in Java und ich habe sowohl durch die Codierung und Dekodierung Proben. Duplizieren der Codierung Beispiele war in Ordnung, aber ich habe nicht in der Lage, um die Dekodierung diejenigen, die arbeiten mit gemischten Typ JSON.
Eines meiner Probleme ist, dass es zu viele Klassen in der Bibliothek, die nicht richtig dokumentiert, und für die ich nicht die Quelle (um der Lage sein zu Lesen und zu verstehen, Ihren Zweck). Folglich, ich bin kämpfen, um zu verstehen, wie eine Menge von diesen Klassen.
Nach der Lektüre dieses Beispiel:
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);
}
aus der json-simple offizielle Decodierung tutorialversuchte ich zu entschlüsseln, dieses 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}
]
}
}
Schreibe ich folgenden code zu entschlüsseln:
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);
Aber es funktioniert nicht. Infact, ich war nicht in der Lage, um die unveränderte Beispiel arbeiten, und die ursprünglichen Autoren erklärt haben, Ihren code.
Was ist der einfachste Weg, um zu decodieren, das von JSON als gezeigt?
InformationsquelleAutor der Frage Sharda Singh | 2013-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die beste und einfachste code:
Den library definition des json-Dateien gibt es hier. Und es ist nicht die gleichen Bibliotheken wie geschrieben hierd.h. die von Ihnen veröffentlicht wurden. Was Sie gepostet hatte war einfache json-Bibliothek die ich verwendet habe diese Bibliothek.
Können Sie laden Sie die zip -. Und erstellen Sie dann eine
package
in Ihrem Projekt mit org.json als Namen. und fügen Sie die heruntergeladenen codes gibt es, und Spaß haben.Ich das Gefühl, dass dies die beste und am einfachsten JSON-Dekodierung.
InformationsquelleAutor der Antwort Veer Shrivastav
Sowie Ihre jsonString ist falsch.
verwenden Sie diese
jsonString
und wenn Sie die gleichenJSONParser
undContainerFactory
im Beispiel sehen Sie, dass es sein wird, codiert/decodiert.Zusätzlich, wenn Sie wollen, drucken Sie Ihren string nach
stat
hier geht es:Und über die json-Bibliotheken, es gibt eine Menge von Ihnen. Besser, Sie prüfen diese.
InformationsquelleAutor der Antwort anvarik
Statt Download eigenen java-Dateien wie vorgeschlagen von Veer, können Sie einfach fügen Sie diese JAR-Datei zu Ihrem Paket.
Hinzufügen der jar-Datei dem Projekt in Eclipse, tun Sie den folgenden:
InformationsquelleAutor der Antwort Afreen
Dies ist die JSON-String wollen wir entschlüsseln :
Speicher ich diese Zeichenkette unter dem Variablennamen "sJSON"
Nun, dies ist, wie Sie zu entschlüsseln 🙂
InformationsquelleAutor der Antwort alphayax