杰克逊反序列化哈希映射

Dre*_*ejc 0 java jackson

我有以下JSON:

"propertyName": "{"1":[{"1":"value1","2":"value2","3":false}]}"
Run Code Online (Sandbox Code Playgroud)

第一个属性是具有属性映射后数组中项目的计数.

如果我想填写一个包含这些值的类,那么使用Jackson对此进行反序列化的最佳方法是:

class MyHolder
{
   name = "value1";
   age = "value2";
   female = false;
}
Run Code Online (Sandbox Code Playgroud)

例如.

Eug*_*gen 6

要反序列化列出/收集具体值(而不是LinkedHashMap默认获得),您需要将类型信息传递给Jackson:

mapper.readValue(jsonString, new TypeReference<List<MyHolder>>() { });
Run Code Online (Sandbox Code Playgroud)

另一种方法是:

CollectionType javaType = mapper.getTypeFactory().constructCollectionType(List.class, MyHolder.class);
List<MyDto> asList = mapper.readValue(jsonString, javaType);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.