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

mmu*_*lva 90 java json jackson

我有String以下值:

[
  {
    "key1": "value11",
    "key2": "value12"
  },
  {
    "key1": "value21",
    "key2": "value22"
  }
]
Run Code Online (Sandbox Code Playgroud)

以下课程:

public class SomeClass {
    private String key1;
    private String key2;
    /* ... getters and setters omitted ...*/
}
Run Code Online (Sandbox Code Playgroud)

我想将它解析为a List<SomeClass>或aSomeClass[]

使用杰克逊 这是最简单的方法ObjectMapper吗?

mmu*_*lva 159

我终于明白了:

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

  • @hitesh141 ObjectMapper 是 com.fasterxml.jackson.databind.ObjectMapper 的成员 (2认同)

Sta*_*Man 80

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

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