Ich möchte die folgende JSON-Zeichenfolge in ein Java-Objekt konvertieren:
String jsonString = "{
"libraryname":"My Library",
"mymusic":[{"Artist Name":"Aaron","Song Name":"Beautiful"},
{"Artist Name":"Britney","Song Name":"Oops I did It Again"},
{"Artist Name":"Britney","Song Name":"Stronger"}]}"
Mein Ziel ist es, einfach darauf zuzugreifen, wie:
(e.g. MyJsonObject myobj = new MyJsonObject(jsonString)
myobj.mymusic[0].id would give me the ID, myobj.libraryname gives me "My Library").
Ich habe von Jackson gehört, bin mir aber nicht sicher, wie ich es verwenden soll, um es an die JSON-Zeichenfolge anzupassen, die ich habe, da es sich aufgrund der Liste "mymusic" nicht nur um Schlüsselwertpaare handelt. Wie kann ich das mit Jackson erreichen oder gibt es eine einfachere Möglichkeit, dies zu erreichen, wenn Jackson nicht der Beste dafür ist?
Antworten:
Sie müssen dafür nicht mit GSON gehen. Jackson kann entweder einfache Karten / Listen erstellen:
ObjectMapper mapper = new ObjectMapper(); Map<String,Object> map = mapper.readValue(json, Map.class);
oder bequemer JSON-Baum:
Übrigens gibt es keinen Grund, warum Sie Java-Klassen nicht erstellen und es (IMO) bequemer machen könnten:
public class Library { @JsonProperty("libraryname") public String name; @JsonProperty("mymusic") public List<Song> songs; } public class Song { @JsonProperty("Artist Name") public String artistName; @JsonProperty("Song Name") public String songName; } Library lib = mapper.readValue(jsonString, Library.class);
quelle
[{"id":62,"name":"projectname1","batchClassId":1283,"batchClassName":"sample_batchclass26","assetCount":0},{"id":8,"name":"projectname_tmp","batchClassId":1283,"batchClassName":"sample_batchclass26","assetCount":0}]
Collection
(wieList
) oder Array (kann Typ verwendenObject[].class
) gebunden sein . Oder einfach nurjava.lang.Object
(wird vom Typ seinList
). Es wird gut funktionieren.Schauen Sie sich Googles Gson an: http://code.google.com/p/google-gson/
Von ihrer Website:
Gson gson = new Gson(); // Or use new GsonBuilder().create(); MyType target2 = gson.fromJson(json, MyType.class); // deserializes json into target2
Sie müssten lediglich eine MyType-Klasse (natürlich umbenannt) mit allen Feldern in der JSON-Zeichenfolge erstellen. Es kann etwas komplizierter werden, wenn Sie die Arrays ausführen. Wenn Sie die gesamte Analyse lieber manuell durchführen möchten (auch ziemlich einfach), lesen Sie http://www.json.org/ und laden Sie die Java-Quelle für den Json herunter Parser-Objekte.
quelle
Gson gson = new Gson(); JsonParser parser = new JsonParser(); JsonObject object = (JsonObject) parser.parse(response);// response will be the json String YourPojo emp = gson.fromJson(object, YourPojo.class);
quelle
JsonParser
ist beraubt!Gson ist auch gut dafür: http://code.google.com/p/google-gson/
"Gson ist eine Java-Bibliothek, mit der Java-Objekte in ihre JSON-Darstellung konvertiert werden können. Sie kann auch zum Konvertieren einer JSON-Zeichenfolge in ein gleichwertiges Java-Objekt verwendet werden. Gson kann mit beliebigen Java-Objekten arbeiten, einschließlich bereits vorhandener Objekte habe keinen Quellcode von. "
Überprüfen Sie die API-Beispiele: https://sites.google.com/site/gson/gson-user-guide#TOC-Overview Weitere Beispiele: http://www.mkyong.com/java/how-do-convert-java -Objekt-zu-von-json-Format-gson-api /
quelle