我创建了一个新的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并没有显示任何方法。
答案 0 :(得分:70)
这些方法位于ObjectNode
:分割是这样的,大多数读取操作都包含在JsonNode
中,但ObjectNode
和ArrayNode
中的突变。
请注意,您只需将第一行更改为:
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)
我最近发现了更有趣的方式来创建任何ValueNode
或ContainerNode
(杰克逊v2.3)。
ObjectNode node = JsonNodeFactory.instance.objectNode();