我有一个巨大的 JSON,但我只需要解析特定的字段。我知道这些字段的路径,所以我决定尝试 JPath,它可以工作,但我想一次解析所有字段。假设我有这样的 JSON:
{
"data": [
{
"field1": 1,
"field2": 1,
...
"another_data": [ {
"required_field1": "1",
"required_field2": "2"
}
],
...
}
]
}
我只想获取具有这些路径的必填字段并将其映射到 Java POJO:
$.data[*].another_data[*].required_field1
$.data[*].another_data[*].required_field2
因此,作为最终结果,我想要一个 Java 对象列表,其中该对象包含required_field1和required_field2。
升级版:
- 现在如何运作
我有一个 Java POJO,它是一个容器
class RequiredInfo {
private String field1;
private String field2;
//constructor, setters, etc
}
我使用 JPath 读取了 2 次 JSON 路径:
String json = "...";
Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
List<String> reqFields1 = JsonPath.read(document, "$.data[*].another_data[*].required_field1");
List<String> reqFields2 = JsonPath.read(document, "$.data[*].another_data[*].required_field2")
然后我将它映射到我的 POJO
for (int i = 0; i < reqFields1.size(); i++) {
res.add(new RequiredInfo(reqFields1.get(i), reqFields2.get(i)));
}
有点我认为有更好的方法可以做到这一点