当前位置: 首页 > 面试题库 >

如何在Java中修改JsonNode?

通安宁
2023-03-14
问题内容

我需要在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());


 类似资料:
  • 我有一个来自javax的现有jsonobject。json。JsonObject类。 我一辈子都想不出如何修改其中现有的价值观。理想情况下,我想这样做: 根据API,不允许修改该映射。 http://docs.oracle.com/javaee/7/api/javax/json/JsonObject.html 此映射对象提供对JSON对象数据的只读访问,并尝试修改映射,无论是直接修改还是通过其集合

  • 求你了,我需要你的帮助。每当我试图运行下面的程序时,它会说不兼容的类型,字符串不能转换为整数。

  • 我想在请求正文到达Http Servlet并获得processed.The请求正文的JSON有效负载如下所示,我想摆脱“PayamtChqmanViewObject”(详细信息)部分。 我可以使用以下方法获得请求正文,但我不知道如何删除JSON的详细部分并将处理后的请求正文传递给HTTP Servlet。 非常感谢您的帮助!

  • 问题内容: 我正在尝试将我的项目目录添加到GOPATH,在Linux中,我可以这样做 在〜/ .bashrc中 Powershell中的等效性是什么 问题答案: 这应该遵循您使用Powershell设置任何Environment变量的方式(如本文所述): 如果您希望它永久存在(即将来将适用于任何外壳程序): 需要注意的一件事:当我们用来创建新的用户或计算机级环境变量时,在Windows Power

  • 问题内容: 我是xml.i的新手,我使用了xml文件,如下所示: 从上面的xml我只想更改 我该如何更改walltreet?作为WonderWorld?通过我的Java应用程序。 我写了如下所示的java方法: 通过使用上面的代码,我能够将所有标签文本更改为奇迹世界,但是我的意图是我只想更改walltreet?作为WonderWorld。 任何人请帮助我..... 问题答案: 用 作为您的条件。

  • 问题内容: 我正在尝试遍历: …并提取中的每个元素。这是我的方法: 这里的问题是对的每次调用都会从中删除元素,从而修改其大小,从而导致以下错误: 那么…当元素动态变化时,我该如何遍历其中的元素呢? 问题答案: 其他人则提到了正确的解决方案,而没有实际阐明。所以这里是: 另外,如果您想安全地在assign函数中更改映射,则需要传入迭代器(只能使用remove函数,并且只能使用一次)或条目来更改值。