-1

我正在使用 Spring Boot,并正在使用 Jackson 解析 JSON 文件。文件看起来像这样

{
    "grouping": [
        {
            "obj1": "value1",
            "obj2": "value2",
            "obj3": "value3",
            "obj4": "value4"
        },
        {
            "obj1": "value1",
            "obj2": "value2",
            "obj3": "value3",
            "obj4": "value4"
            },
        },
        {
            "obj1": "value1",
            "obj2": "value2",
            "obj3": "value3",
            "obj4": "value4"
            },
        }
    ]
}

当我用杰克逊的 ObjectMapper 解析它时,它会抛出一个错误,说我没有使用 @JsonProperty 定义“分组”。问题是我不关心这个初始标题,但如果我忽略它(使用@JsonIgnoreProperties("grouping"),那么其余数据将被跳过,我目前最终得到一个包含默认构造函数值的对象.

我需要创建一个丢弃变量还是需要重组我的对象/类?

4

1 回答 1

1

有2种可能:

1)创建变量grouping并将结果解析为对象:例如:

ObjectMapper mapper = new ObjectMapper();
Holder holder = mapper.readValue(content, Holder.class);
ObjHolder[] objHolder = holder.getGrouping().getObjHolderArray();

2) 将整个 JSON 读取为 JsonNode,导航到grouping并将其内容解析为数组。例如:

ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(content);
JsonNode array = actualObj.get("grouping");
ObjHolder[] objHolders = mapper.treeToValue(array, ObjHolder[].class);
于 2018-02-11T03:51:29.663 回答