如何使用 Jackson 将 JSON 字符串解析为数组

2022-08-31 10:04:11

我有一个具有以下值:String

[
  {
    "key1": "value11",
    "key2": "value12"
  },
  {
    "key1": "value21",
    "key2": "value22"
  }
]

以及以下类:

public class SomeClass {
    private String key1;
    private String key2;
    /* ... getters and setters omitted ...*/
}

我想把它解析为 a 或 aList<SomeClass>SomeClass[]

使用杰克逊最简单的方法是什么?ObjectMapper


答案 1

我终于明白了:

ObjectMapper objectMapper = new ObjectMapper();
TypeFactory typeFactory = objectMapper.getTypeFactory();
List<SomeClass> someClassList = objectMapper.readValue(jsonString, typeFactory.constructCollectionType(List.class, SomeClass.class));

答案 2

另一个答案是正确的,但为了完整起见,这里有其他方法:

List<SomeClass> list = mapper.readValue(jsonString, new TypeReference<List<SomeClass>>() { });
SomeClass[] array = mapper.readValue(jsonString, SomeClass[].class);