2012-07-16 14 views
39

私は、このノードでJsonNodeに新しいノードを挿入する方法私は新しい値で、この新しいノードを構築することができるように

JsonNode jNode = new ObjectCodec().createObjectNode(); 

を作成した新しいJsonNodeを持って、どのように私は、内のキーと値のペアを追加するには?私はhttp://www.cowtowncoder.com/blog/archives/2011/08/entry_460.htmlで読んだような任意の方法を示していない

jNode.with("newNode").put("key1","value1"); 

を使用してでも、ジャクソンさんJsonNode(V1.8)のためのAPIを見てについて言及しました。部門はほとんどがJsonNodeに含まれているオペレーションを読むようなものであるが、ObjectNodeArrayNodeの変異:

答えて

55

これらのメソッドはObjectNodeです。私は最近、どのValueNodeまたはContainerNode(ジャクソンV2.3を作成するために、さらに多くの興味深い方法を発見した

ObjectNode jNode = mapper.createObjectNode(); 
// version ObjectMapper has should return ObjectNode type 

または

ObjectNode jNode = (ObjectNode) objectCodec.createObjectNode(); 
// ObjectCodec is in core part, must be of type JsonNode so need cast 
+7

このStaxManをありがとうございました。私が入れ忘れたフォローアップの質問は、このノードを既存のノードに挿入する方法です。 –

+0

通常、 'ObjectNode'や' ArrayNode'のメソッドを使って子を追加します。マッパーは、ルートノードの構築にのみ使用されます。だから 'ObjectNode' /' ArrayNode'に 'putObject'や' addObject'メソッドをチェックしてください – StaxMan

43

:あなたがちょうどされる最初の行を変更することができることを

注意)。

ObjectNode node = JsonNodeFactory.instance.objectNode(); 
+6

これには何も問題はありません。それはシングルトンのインスタンスがあるのです – cesar

+0

しかし、何らかの理由で私はインスタンスメソッドを代わりに可変参照 – deFreitas

関連する問題