Lets sagen, ich habe Objekt wie dieseJackson Mapping json auf Objekte
{
first: "value",
second: "value",
third: {
first: "first value third",
second: "second value third",
fourth: {
first: "second nested object",
second: "second nested object"
},
fifth: {
first: "another second nested object",
second: "another second nested object"
}
},
sixth: {
first: "value",
second: "value"
}
}
I RestTemplate Klasse ist mit json von URL wie folgt zu holen:
RestTemplate rest = new RestTemplate();
String result = rest.getForObject(ENDPOINT_URL, String.class);
danach Ich mag würde werfen die json Zeichenfolge auf ein Objekt unter Verwendung von Jackson Objektabbildern
import com.fasterxml.jackson.databind.ObjectMapper
die Entitätsklasse als zweiten Parameter übergeben
ObjectMapper mapper = new ObjectMapper();
object = mapper.readValue(result, ExampleJson.class);
Die Frage ist, wie sollte ich ExampleJson Entität schreiben, um eine get json zu behandeln? Ich habe es mit der Klasse versucht, aber es scheint nicht zu funktionieren.
public class ExampleJson {
private String first;
private String second;
private Third third;
private Sixth sixth;
// Getters && Setters
public static class Third {
private String first;
private String second;
private Fourth fourth
private Fifth fifth
// Getters && Setters
private Fourth {
private String first;
private String second;
// Getters && Setters
}
private Fifth {
private String first;
private String second;
// Getters && Setters
}
}
public static class Sixth {
private String first;
private String second;
// Getters && Setters
}
}
Ich bin eine Ausnahme wie folgt erhalten:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
Unrecognized field "fourth"
Ist das Objekt immer im selben Format oder kann es sich dynamisch ändern? –
innere Klassen müssen statisch sein oder auf andere Weise instanziiert werden, z. B. gibt es keinen Nullargumentkonstruktor oder Anmerkungen. http://www.cowtowncoder.com/blog/archives/2010/08/entry_411.html – StackTraceYo
Kommentieren Sie die Klasse, die Sie deserialisieren, mit '@JsonIgnoreProperties (ignoreUnknown = true)' – teppic