使用Jackson反序列化包装列表

时间:2014-12-30 04:20:07

标签: java json list jackson

我有一个像这样的JSON对象:

{"geonames":[
   {"countryId":"2017370",
    "adminCode1":"73"},
   {"countryId":"2027370",
    "adminCode1":"71"},
    ...]}

如何将此对象 DIRECTLY 反序列化为List<GeoName>,忽略第一层(geonames包装器),而不是反序列化为包含List<GeoName>的包装器对象{{1 }}?

1 个答案:

答案 0 :(得分:3)

使用具有根名称的ObjectReader

ObjectMapper mapper = new ObjectMapper();
ObjectReader reader = mapper.reader(new TypeReference<List<GeoName>>() {}).withRootName("geonames");
List<GeoName> list = reader.readValue(json);