安全地忽略包含所有其他 Objects 的 JSON 属性
Safely Ignore JSON Property that Contains All Other Objects
我正在使用 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"
},
}
]
}
当我用 Jackson 的 ObjectMapper 解析它时,它抛出一个错误,说我没有使用 @JsonProperty 定义 "grouping"。问题是我不关心这个初始标题,但如果我忽略它(使用@JsonIgnoreProperties("grouping"),那么其余数据将被跳过,我目前得到一个 object其中包含默认构造函数值。
我需要创建一个一次性变量还是需要重组我的 objects/classes?
有两种可能:
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);
我正在使用 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"
},
}
]
}
当我用 Jackson 的 ObjectMapper 解析它时,它抛出一个错误,说我没有使用 @JsonProperty 定义 "grouping"。问题是我不关心这个初始标题,但如果我忽略它(使用@JsonIgnoreProperties("grouping"),那么其余数据将被跳过,我目前得到一个 object其中包含默认构造函数值。
我需要创建一个一次性变量还是需要重组我的 objects/classes?
有两种可能:
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);