[英]add key value pairs to jsonobject using jackson
我只需要從一個json節點復制元數據並將其添加到另一個。 我的問題是
ObjectNode.put("key":"value")
覆蓋現有數據,但我需要添加它們。
例:
{"metadata":{ "foo":1, "boo":2}} merged with {"metadata": {"ba":7}}
應該
{"metadata":{"foo":1, "boo":2,"ba":7}}
應該很簡單,但我不明白:(因此,任何幫助將不勝感激!
您可以通過多種方式執行此操作。
首先,使用Jackson API; 讓我們將node
稱為要修改的節點,將newNode
稱為要合並的節點:
final ObjectNode newMetadata = (ObjectNode) newNode.get("metadata");
final ObjectNode metadata = (ObjectNode) node.get("metadata");
metadata.putAll(newMetadata);
其次,(對不起:自我提升)您的目標JSON可用作JSON Merge Patch ; 我開發的庫使用Jackson(請注意:2.2.x,而不是1.9.x) 支持該庫 :
final JsonMergePatch patch = JsonMergePatch.fromJson(newNode);
node = patch.apply(node);
要將鍵值對添加到json對象,您只需要獲取一個MAP並將鍵值條目放入其中。現在您應該獲取JSONER對象。 通過使用jsoner的serialize方法,您可以將MAP直接添加到json。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.