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

我创建了一个新的 JsonNode

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

with this node, how do I then add key value pairs within so that I can construct this new node with the new values? What I read in http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html mentioned about using

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

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

153530 次浏览

这些方法都在 ObjectNode中: 除了 ObjectNodeArrayNode中的突变,大多数读操作都包含在 JsonNode中。

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

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

我最近发现了更有趣的方法来创建任何 ValueNodeContainerNode(Jackson v2.3)。

ObjectNode node = JsonNodeFactory.instance.objectNode();