如何在春季项目中使用杰克逊将jsonarray转换为字符串数组



如何在春季使用杰克逊将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);

最新更新