/ / Ändern der Bibliothek von org.json nach Jackson zum Parsen von JSON - Java, Android, JSON, Parsing, Jackson

Ändern der Bibliothek von org.json nach Jackson für die Analyse von JSON - Java, Android, JSON, Parsing, Jackson

Ich habe die Lagerorganisation verwendet.json library und bin damit vertraut. Ich möchte die Jackson-Bibliothek jetzt aus Performance-Gründen nutzen, habe aber Probleme, mich an ein anderes Framework anzupassen. Nehmen Sie den folgenden JSON:

{"result":[[{"usUserName":"FRED","usActive":true},{"usUserName":"JIM","usActive":true},{"usUserName":"DAVID","usActive":true}]]}

Mit org.json analysiere ich das wie folgt:

try {
JSONArray jsonRecordset = response.getJSONArray("result").getJSONArray(0);
JSONObject jsonFirstRecord = jsonRecordset.getJSONObject(0);
Log.i("myloginfo", jsonFirstRecord.getString("usUserName"));
} catch (JSONException e) {
e.printStackTrace();
}

Ich würde das gerne mit Jackson replizieren, kann es aber nichtsehen, wohin es gehen soll, da es ganz anders aussieht. Mein JSON kommt von einem Webdienst, über den ich keine Kontrolle habe. Die obigen Daten dienen nur der Veranschaulichung. Meine tatsächlichen Daten sind viel größer, daher möchte ich die beste Leistung erzielen.

Antworten:

1 für die Antwort № 1

Die übliche Methode besteht darin, dass Sie anstelle des manuellen Zerlegens und Zerlegens von Dingen eine Java-Klasse (oder mehrere Klassen) definieren, deren Struktur mit JSON kompatibel ist. Wie so:

public class Response {
public UserInfo[][] result;
}
public class UserInfo {
public String usUserName;
public boolean usActive;
}

ObjectMapper mapper = new ObjectMapper(); // must reuse for good performance
Response resp = mapper.readValue(jsonInput, Response.class);
// and use "resp" however you want, now has the expected data.

Es ist auch möglich, Jackson genauso zu benutzen wiejson.org, mit sogenanntem Tree Model; Hierfür können Sie sich Tutorials ansehen. Es funktioniert besser, wenn Daten keine gute Objektstruktur haben (d. H. Nicht für den einfachen Zugriff aus OO-Sprachen entwickelt wurden) oder wenn Sie nur einen kleinen Ausschnitt aus großen Dokumenten benötigen.