如何修改Java中的JsonNode?
我需要在Java中更改JSON属性的值,我可以正确地获取值,但是我无法修改JSON。
这里是下面的代码
JsonNode blablas = mapper.readTree(parser).get("blablas"); for (JsonNode jsonNode : blablas) { String elementId = jsonNode.get("element").asText(); String value = jsonNode.get("value").asText(); if (StringUtils.equalsIgnoreCase(elementId, "blabla")) { if(value != null && value.equals("YES")){ // I need to change the node to NO then save it into the JSON } } }
做这个的最好方式是什么?
JsonNode
是不可变的,用于parsing操作。 但是,它可以投射到允许突变的ObjectNode
(和ArrayNode
)中:
((ObjectNode)jsonNode).put("value", "NO");
对于一个数组,你可以使用:
((ObjectNode)jsonNode).putArray("arrayName").add(object.getValue());
您需要获取ObjectNode
types对象才能设置值。 看看这个
我认为你可以投到ObjectNode并使用put
方法。 喜欢这个
ObjectNode o = (ObjectNode) jsonNode; o.put("value", "NO");
- @JsonProperty字段的注释以及getter / setter
- 我应该将Jackson的ObjectMapper声明为静态字段吗?
- 我如何从jackson的一个自定义反序列化器中调用默认的反序列化器
- 在序列化Hibernate对象时引发奇怪的jacksonexception
- 为什么当一个构造函数用@JsonCreator注解时,它的参数必须用@JsonProperty注解?
- jacksonJSON和Hibernate JPA问题的无限recursion
- jackson:如何添加自定义属性到JSON而不修改POJO
- jackson – 具有双向关系的实体序列化(避免循环)
- 如何在Wildfly中configurationJackson?