如何在JsonNode中创建插入新节点?

时间:2012-07-16 11:46:38

标签: json jackson

我创建了一个新的JsonNode

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

使用此节点,我如何在其中添加键值对,以便我可以使用新值构造此新节点?我在http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html中提到的关于使用

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

但是看看Jackson的JsonNode(v1.8)的API并没有显示任何方法。

2 个答案:

答案 0 :(得分:70)

这些方法位于ObjectNode:分割是这样的,大多数读取操作都包含在JsonNode中,但ObjectNodeArrayNode中的突变。

请注意,您只需将第一行更改为:

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

答案 1 :(得分:60)

我最近发现了更有趣的方式来创建任何ValueNodeContainerNode(杰克逊v2.3)。

ObjectNode node = JsonNodeFactory.instance.objectNode();