我有以下超集JSON和子集JSON。在我的java代码中,我需要解析超集JSON,并且对于propList中将overwrite标志设置为true的每个元素,我需要读取子集JSON中的值,该子集具有与超集JSON类似的结构并覆盖它。
在java中实现这一目标的最佳方法是什么? JSON文档可能非常大。
Superset JSON:
{
"configList": [
{
"configElement": "elem1",
"propList": [
{
"property": "prop1",
"value": "val1",
"overwriteValueFromSubset": false
},
{
"property": "prop2",
"value": "",
"overwriteValueFromSubset": true
},
{
"property": "prop3",
"value": "val3",
"overwriteValueFromSubset": false
}
]
},
{
"configElement": "elem2",
"propList": [
{
"property": "prop1",
"value": "val1",
"overwriteValueFromSubset": false
},
{
"property": "prop2",
"value": "val2",
"overwriteValueFromSubset": false
},
{
"property": "prop3",
"value": "",
"overwriteValueFromSubset": true
}
]
}
]
}
子集JSON:
{
"configList": [
{
"configElement": "elem1",
"propList": [
{
"property": "prop2",
"value": "new_value",
}
]
},
{
"configElement": "elem2",
"propList": [
{
"property": "prop3",
"value": "new_value",
}
]
}
]
}
答案 0 :(得分:0)
假设您可以将所有数据都放入内存中。谷歌“如何将Java POJO转换为JSON对象”,(反之亦然)。所以答案(没有实际为你编码)是将它转换为一个大的Java对象(图形),并处理POJO,然后只需调用任何方法将其保存为JSON。杰克逊图书馆就是你想要的。该对象称为“映射器”。这应该是让你前进的足够提示。
https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/