2017-01-18 10 views
1

私は以下のObjectNodeを持っています。Jacksonを使って子としてObjectNodeを別のObjectNodeに追加するにはどうすればよいですか?

handlerObjectNode -> {"Info":{"Brand":{"BrandName":"TOP OF THE WORLD"}}} 

次の形式のObjectNodeがあります。

fieldObjects -> {"Description":"REGULAR BR"} 

上記の2つのObjectNodeを作成するにはどうすればよいですか?

{ 
    "Info": { 
     "Brand": { 
      "BrandName": "TOP OF THE WORLD" 
     } 
    "Description": "REGULAR BR" 
    } 
} 

私は以下のコードを試しました。

handlerObjectNode.setAll(fieldObjects); 

ただし、次のObjectNodeになります。

{ 
    "Info": { 
     "Brand": { 
      "BrandName": "TOP OF THE WORLD" 
     } 
    }, 
    "Description": "REGULAR BR" 
} 

ジャクソンのcom.fasterxml.jackson.databind.node.ObjectNodeを使用しています。どんな助けでも大歓迎です。

+0

try .. root.with( "Info")。put( "Description"、 "REGULAR BR"); more [info](http://wiki.fasterxml.com/JacksonTreeModel) – Onkar

+0

@Onkarそれはうまくいった!ありがとう。答えとしてこれを入れてください:) – mayooran

答えて

3

、詳細This

については

root.with("Info").put("Description", "REGULAR BR"); 

をこれを試してみてください

0

Infoオブジェクトを抽出し、それにfieldObjectsを追加します。次の出力で

ObjectMapper om = new ObjectMapper(); 

ObjectNode handlerObjectNode = (ObjectNode) om.readTree("{\"Info\":{\"Brand\":{\"BrandName\":\"TOP OF THE WORLD\"}}}"); 
ObjectNode fieldObjects = (ObjectNode) om.readTree("{\"Description\":\"REGULAR BR\"}"); 

ObjectNode info = (ObjectNode) handlerObjectNode.path("Info"); 
info.setAll(fieldObjects); 

結果:

{ 
    "Info" : { 
    "Brand" : { 
     "BrandName" : "TOP OF THE WORLD" 
    }, 
    "Description" : "REGULAR BR" 
    } 
} 
関連する問題