java - 如何在 Java 中修改 JsonNode?

标签 java json jackson

我需要在 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 是不可变的,用于解析操作。但是,它可以转换为允许突变的 ObjectNode(和 ArrayNode):

((ObjectNode)jsonNode).put("value", "NO");

对于数组,可以使用:

((ObjectNode)jsonNode).putArray("arrayName").add(object.ge‌​tValue());

关于java - 如何在 Java 中修改 JsonNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997362/

相关文章:

java - 在 Java 中将两个 Int 的和存储在 Long 中

java - 如何使用 servlet 创建 CSV 文件?

java - Jackson 从子节点反序列化到字段?

c# POST JSON as camel case for all requests

java - 如何使用java和jackson api获取@JsonProperty的值?

java - Jackson CSV 映射器不适用于自定义架构

java - 有没有办法通过 ObjectOutputStream 或 Socket 本身检查套接字是否处于 Activity 状态?

javascript - Play 框架 websocket 发生这种情况时不会向前端发送消息

php - 空 php json,同时使用重音符号从 mySQL 进行查询

java - 如何将带有对象和数组索引的字符串转换为 json