用杰克逊反序列化命名列表到列表

时间:2018-08-28 06:53:23

标签: java jackson

我想使用以下结构从String.class反序列化json:

{"listName": [{"prop":"value"},{"prop":"value"}, ... ] }

List<PropVo>,其中PropVo包含String prop作为字段。

  • 我不想使用List<PropVo>创建包装类
  • 我不想使用子字符串

是否存在仅反序列化到列表的选项?

2 个答案:

答案 0 :(得分:1)

您可以使用类型引用将JSON转换为Map<String, List<PropVo>>

Map<String, List<PropVo>> m = objectMapper.readValue(string, 
        new TypeReference<Map<String, List<PropVo>>>() {});

答案 1 :(得分:0)

另一种方法是使用readTree

示例:

ObjectMapper om = new ObjectMapper();
JsonNode list = om.readTree(json).path("listName");
List<PropVo> result = Arrays.asList(om.treeToValue(list,PropVo[].class);