如何在JsonNode中创建插入新节点?
我创建了一个新的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 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();