Ich habe die folgende Adresse und Address KlassenWie man eine Liste als einzelne Objekte deserialisiert anstatt eines Listenobjektes?
public class Address {
private String street;
private String city;
private String state;
// ...
}
public class AddressList {
private List<Address> addresses;
// ...
}
und dann eine Klasse Person
public class Person {
private String name;
@JsonDeserialize(contentUsing = ListDeserializer.class)
private Map<String, AddressList> addresses;
// ..
}
Dann habe ich die YAML-Datei wie diese als
---
name: 'abc'
addresses:
offices:
- street: 123 main st
city: san francisco
state: ca
- street: 234 post st
city: san francisco
state: ca
Meine Liste Deserializer-Klasse folgt:
public class ListDeserializer extends JsonDeserializer<AddressList> {
@Override
public AddressList deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return jsonParser.readValueAs(new TypeReference<Map<String, List<Address>>>() {
});
}
Code
} meine Analyse ist wie folgt:
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
return objectMapper.readValue(inputYamlFile, Person.class);
wenn ich die Liste der Adressen lesen: er druckt als
{offices=null}
Kann jemand bei der Lösung dabei helfen?