Как создать новые узлы в JsonNode?
У меня есть новый JsonNode, который я создал
JsonNode jNode = new ObjectCodec().createObjectNode();
с этим node, как я затем добавляю пары ключевых значений внутри, чтобы я мог построить этот новый node с новыми значениями? То, что я читал в http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html, упоминалось об использовании
jNode.with("newNode").put("key1","value1");
Но, глядя на API для Jackson JsonNode (v1.8), не отображается какой-либо метод как таковой.
Ответы
Ответ 1
Эти методы находятся в 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
Ответ 2
Недавно я нашел еще более интересный способ создания любых ValueNode
или ContainerNode
(Jackson v2.3).
ObjectNode node = JsonNodeFactory.instance.objectNode();