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

如何在JsonNode中创建插入新节点?,json,jackson,Json,Jackson,我创建了一个新的JsonNode JsonNode jNode = new ObjectCodec().createObjectNode(); 有了这个节点,我如何在其中添加键值对,以便用新值构造这个新节点?我在书中读到的内容提到了使用 jNode.with("newNode").put("key1","value1"); 但是查看Jackson的JsonNode(v1.8)的API并没有显示任何这样的方法。这些方法在ObjectNode中:这种划分使得大多数读取操作都包含在JsonNode

我创建了一个新的JsonNode

JsonNode jNode = new ObjectCodec().createObjectNode();
有了这个节点,我如何在其中添加键值对,以便用新值构造这个新节点?我在书中读到的内容提到了使用

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

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

这些方法在
ObjectNode
中:这种划分使得大多数读取操作都包含在
JsonNode
中,但是
ObjectNode
ArrayNode
中有突变

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

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


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


谢谢你,斯塔克斯曼。我忘了提出的一个后续问题是如何将此节点插入现有节点?通常使用
ObjectNode
ArrayNode
的方法添加子节点;映射器仅用于构造根节点。因此,请查看
ObjectNode
/
ArrayNode
中的
putObject
addObject
方法,这没有什么问题。这就是singleton实例的用途,但是由于某种原因,我错过了一个实例方法,而不是一个变量引用
ObjectNode jNode = (ObjectNode) objectCodec.createObjectNode();
// ObjectCodec is in core part, must be of type JsonNode so need cast
ObjectNode node = JsonNodeFactory.instance.objectNode();