Java - 将值从子集JSON文档覆盖到超集JSON文档的最佳方法

时间:2017-11-26 19:20:01

标签: java json

我有以下超集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",
        }
      ]
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

假设您可以将所有数据都放入内存中。谷歌“如何将Java POJO转换为JSON对象”,(反之亦然)。所以答案(没有实际为你编码)是将它转换为一个大的Java对象(图形),并处理POJO,然后只需调用任何方法将其保存为JSON。杰克逊图书馆就是你想要的。该对象称为“映射器”。这应该是让你前进的足够提示。

https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/