我有以下地址和AddressList中類如何將列表反序列化爲單個對象而不是列表對象?
public class Address {
private String street;
private String city;
private String state;
// ...
}
public class AddressList {
private List<Address> addresses;
// ...
}
,然後一個Person類
public class Person {
private String name;
@JsonDeserialize(contentUsing = ListDeserializer.class)
private Map<String, AddressList> addresses;
// ..
}
然後我有YAML文件中像這樣
---
name: 'abc'
addresses:
offices:
- street: 123 main st
city: san francisco
state: ca
- street: 234 post st
city: san francisco
state: ca
我的列表解串器類是作爲如下:
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>>>() {
});
}
} 我解析代碼如下:
ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
return objectMapper.readValue(inputYamlFile, Person.class);
,當我讀到地址列表:它打印爲
{offices=null}
任何人都可以解決這方面的幫助?