Java 使用jackson将命名列表反序列化为列表

Java 使用jackson将命名列表反序列化为列表,java,jackson,Java,Jackson,我想使用以下结构从String.class反序列化json: {"listName": [{"prop":"value"},{"prop":"value"}, ... ] } 到列表,其中PropVo包含字符串prop作为字段 我不想用List 我不想使用子字符串 是否有反序列化列表的选项?您可以使用类型引用将该JSON转换为映射: Map m=objectMapper.readValue(字符串, 新类型引用(){}); 另一种方法是使用readTree 例如: ObjectMapper

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

{"listName": [{"prop":"value"},{"prop":"value"}, ... ] }
列表
,其中PropVo包含字符串prop作为字段

  • 我不想用
    List
  • 我不想使用子字符串

是否有反序列化列表的选项?

您可以使用类型引用将该JSON转换为映射:

Map m=objectMapper.readValue(字符串,
新类型引用(){});

另一种方法是使用readTree

例如:

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

您可以将其反序列化为
Map
ObjectMapper om = new ObjectMapper();
JsonNode list = om.readTree(json).path("listName");
List<PropVo> result = Arrays.asList(om.treeToValue(list,PropVo[].class);