我只需要从一个json节点复制元数据并将其添加到另一个节点。我的问题是
ObjectNode.put("key":"value")
覆盖现有数据,但我需要添加它们。
示例:
{"metadata":{ "foo":1, "boo":2}} merged with {"metadata": {"ba":7}}
应该是
{"metadata":{"foo":1, "boo":2,"ba":7}}
应该是相当简单,但我不明白:(因此,任何帮助都会感谢!
发布于 2014-03-20 10:07:05
你可以用几种方式做到这一点。
首先,使用Jackson;让我们将node
称为要修改的节点,将要合并的节点称为newNode
:
final ObjectNode newMetadata = (ObjectNode) newNode.get("metadata");
final ObjectNode metadata = (ObjectNode) node.get("metadata");
metadata.putAll(newMetadata);
第二,(抱歉:自我推销)您的目标JSON可以用作JSON合并修补程序;我开发的一个库,它使用Jackson (注意: 2.2.x,而不是1.9.x),支持它
final JsonMergePatch patch = JsonMergePatch.fromJson(newNode);
node = patch.apply(node);
发布于 2014-03-20 10:04:42
要向json对象添加键值对,只需获取一个映射并将键值条目放入it.now中,就应该使用JSONER对象。通过使用jsoner的序列化方法,您可以直接将映射添加到json。
https://stackoverflow.com/questions/22529255
复制相似问题