ich eine JSON-Datei mit mehreren Einträgen haben, die gleichen Attributnamen, aber unterschiedliche Attributwerte, wie zum Beispiel:Mapping JSON mit mehreren Einträgen in ein Array
{
"name" : { "first" : "A", "last" : "B" },
"gender" : "MALE",
"married" : false,
"noOfChildren" : 2
},
{
"name" : { "first" : "C", "last" : "D" },
"gender" : "FEMALE",
"married" : true,
"noOfChildren" : 1
}
Die Klasse, es ist abgebildet werden soll:
public class Mensch {
private Name name;
private String gender;
private int age;
<getter, setters etc>
}
EDIT: Servicecode ist:
List<Human> humans = null;
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try {
humans= objectMapper.readValue(json, new TypeReference<List<Human>>(){});
} catch (IOException e) {
e.printStackTrace();
}
JSON von HTTP-Einheit analysiert und mit dem richtigen Format und jetzt habe ich die Anmerkung ass in den Antworten vorgeschlagen.
Wie Sie sehen können, haben sie einige Attribute gemeinsam, unterscheiden sich aber in anderen, und ich möchte diese gemeinsamen Felder zuordnen. Ist es möglich, den JSON auf diese Weise abzubilden? Ich habe versucht, JSON zu einer Sammlung/Liste/einem Array von JsonNodes zuzuordnen, aber ich bekomme immer wieder Fehler bei der Deserialisierung, während das Mappen nur einer Instanz des JSON-Eintrags gut funktioniert. Gibt es eine andere Möglichkeit, dies zu tun?
Ich will nicht die ganze Klasse ignorieren, nur bestimmte Felder. Aber was ist mit den Attributen, die nicht in der Klasse enthalten sind, wie 'noOfChildren' oder' verheiratet'? – borgmater
Diese Attribute werden ignoriert, nur Name und Geschlecht sind in Ihrem Objekt enthalten. –