簡體   English   中英

使用傑克遜將鍵值對添加到jsonobject

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM