【发布时间】:2016-03-21 23:36:24
【问题描述】:
我有以下 Address 和 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
我的List反序列化类如下:
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}
谁能帮忙解决这个问题?
【问题讨论】:
标签: java jackson deserialization yaml