如何在春季使用杰克逊将jsonarray转换为字符串数组
{"number":[5,3,6,7,9,8,10,11,12,13,14,15,19,26]}
这应该使用杰克逊转换为对象的数组[]
除此之外,将数字数组转换为字符串数组似乎没有用,杰克逊将毫无问题地阅读以下内容:
String json = "{"number":[5,3,6,7,9,8,10,11,12,13,14,15,19,26]}";
ObjectMapper mapper = new ObjectMapper();
MyObject object = mapper.readValue(json, MyObject.class);
MyObject
如下所示的位置:
private static class MyObject {
private String[] number;
public String[] getNumber() {
return number;
}
public void setNumber(String[] number) {
this.number = number;
}
}
要只获取数组,您可以使用mapper.readTree()
来获取 JsonNode。之后,您可以提取数组并使用 java stream API 来解析它:
String[] array = StreamSupport.stream(mapper.readTree(json).get("number").spliterator(), false)
.map(JsonNode::asText)
.toArray(String[]::new);