我正在使用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("分组"),那么其余的数据将被跳过,我目前最终得到一个对象中包含defaault构造函数值。
我是否需要创建一个抛弃变量,还是需要重构我的对象/类?
答案 0 :(得分:1)
有两种可能性:
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);