Dies ist der JSON-String, den ich von einer URL bekomme, und ich möchte ihn extrahieren highDepth
Wert aus der folgenden JSON-Zeichenfolge.
{
"description": "",
"bean": "com.hello.world",
"stats": {
"highDepth": 0,
"lowDepth": 0
}
}
Ich verwende GSON hier, da ich neu bei GSON bin. Wie extrahiere ich? highDepth
von der obigen JSON Strirng mit GSON?
String jsonResponse = restTemplate.getForObject(url, String.class);
// parse jsonResponse to extract highDepth
Antworten:
2 für die Antwort № 1Sie erstellen ein Paar POJOs
public class ResponsePojo {
private String description;
private String bean;
private Stats stats;
//getters and setters
}
public class Stats {
private int highDepth;
private int lowDepth;
//getters and setters
}
Sie verwenden das dann im RestTemplate#getForObject(..)
Anruf
ResponsePojo pojo = restTemplate.getForObject(url, ResponsePojo.class);
int highDepth = pojo.getStats().getHighDepth();
Keine Notwendigkeit für Gson.
Ohne POJOs da RestTemplate
verwendet standardmäßig Jackson, Sie können den JSON-Baum als ObjectNode
.
ObjectNode objectNode = restTemplate.getForObject(url, ObjectNode.class);
JsonNode highDepth = objectNode.get("stats").get("highDepth");
System.out.println(highDepth.asInt()); // if you"re certain of the JSON you"re getting.
1 für die Antwort № 2
Bezug nehmen zu JSON-Analyse mit Gson für JavaIch würde sowas schreiben
JsonElement element = new JsonParser().parse(jsonResponse);
JsonObject rootObject = element.getAsJsonObject();
JsonObject statsObject = rootObject.getAsJsonObject("stats");
Integer highDepth = Integer.valueOf(statsObject.get("highDepth").toString());