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

Dex*_*ato 54 json jackson

我有一个新创建的JsonNode

JsonNode jNode = new ObjectCodec().createObjectNode();
Run Code Online (Sandbox Code Playgroud)

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

jNode.with("newNode").put("key1","value1");
Run Code Online (Sandbox Code Playgroud)

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

Sta*_*Man 78

这些方法是ObjectNode:划分是这样的,大多数读取操作都包括在内JsonNode,但在ObjectNode和中的突变ArrayNode.

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

ObjectNode jNode = mapper.createObjectNode();
// version ObjectMapper has should return ObjectNode type
Run Code Online (Sandbox Code Playgroud)

要么

ObjectNode jNode = (ObjectNode) objectCodec.createObjectNode();
// ObjectCodec is in core part, must be of type JsonNode so need cast
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你这个StaxMan.我忘记放入的后续问题是如何将此节点插入现有节点? (7认同)

ran*_*m86 65

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

ObjectNode node = JsonNodeFactory.instance.objectNode();
Run Code Online (Sandbox Code Playgroud)

  • 这没什么不对.这就是单例实例的用途 (6认同)