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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我有一个String具有以下价值:

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

和以下类:

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

我想把它解析为一个List<SomeClass>或一个SomeClass[]

使用jackson 最简单的方法是什么ObjectMapper

提问于
用户回答回答于

我终于得到了它:

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

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

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

扫码关注云+社区