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

JSON文件-Java:编辑/更新字段值

司徒宇
2023-03-14
问题内容

我的工作流程中有一些JSONObject,并且通过将它们写入json文件来存储相同的JSONObject。

我想要一种有效的方式来更新json文件 更新 需要的字段, 以及更新的JSONObjects实例的内容。

例如:

档案中我有

ObjectOnFile = {key1:val1, key2:val2,...}

在记忆中我有

ObjectInMemory = {key1:val1_newer, key2:val2_newer,...}

更新将像:

 if (!(ObjectInMemory.get(key1).equals(ObjectOnFile.get(key1)))
       // update file field value <--- how to?

通常,我想更新每个键的内容较新(不同)的值。

实际上我的代码是:

import org.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;

ObjectMapper mapper = new ObjectMapper();
Sting key = "key1"; //whatever
JSONObject jo = new JSONObject("{key1:\"val1\", key2:\"val2\"}");
JSONObject root = mapper.readValue(new File(json_file), JSONObject.class);
JSONObject val_newer = jo.getJSONObject(key);
JSONObject val_older = root.getJSObject(key);
if(!val_newer.equals(val_older)){
   root.put(key,val_newer);
/*write back root to the json file...how? */
}

问题答案:

只需执行以下操作即可:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.json.JSONException;
import org.json.JSONObject;

import com.fasterxml.jackson.databind.ObjectMapper;


public class Test {

    public static void main(String[] args) throws JSONException, IOException 
    {
        ObjectMapper mapper = new ObjectMapper();
        String key = "key1"; //whatever

        JSONObject jo = new JSONObject("{key1:\"val1\", key2:\"val2\"}");
        //Read from file
        JSONObject root = mapper.readValue(new File("json_file"), JSONObject.class);

        String val_newer = jo.getString(key);
        String val_older = root.getString(key);

        //Compare values
        if(!val_newer.equals(val_older))
        {
          //Update value in object
           root.put(key,val_newer);

           //Write into the file
            try (FileWriter file = new FileWriter("json_file")) 
            {
                file.write(root.toString());
                System.out.println("Successfully updated json object to file...!!");
            }
        }
    }
}


 类似资料:
  • 问题内容: 这是我的 JSON 我需要升级到基于 如何在PHP中实现呢? 问题答案: 首先,您需要对其进行解码: 然后更改数据: 然后重新编码并将其保存回文件中:

  • 我的项目使用drools专家手段(DRL)文件。在规则文件中,如果用户想删除和更新规则,应该怎么做? 规则文件: 例如,用户希望将温度值更改为30.0。

  • 我有一个运行几个片段的Mainactive(MA),它们不会相互交谈,而是通过“onClick”android机制与MA通信。由微调器选择和“onClick”按钮驱动,我们到达MA的Retrieve病人记录方法。 我执行一个数据库调用以获取所选的db记录(根据注释行),然后测试是否存在一个existingPatient片段,我打算将数据库记录的各个字段放入其中,因为它本质上是一个表单。在未找到“n

  • 我正在尝试使用jQuery验证插件验证表单中的文件上载字段。我只需要检查文件是否已上载,而不需要检查文件是否具有特定的大小和/或类型。在最初提交时一切正常,问题是表单被提交到数据库,并允许以后编辑。编辑表单时,我设置了一个附加的隐藏字段,末尾附加了。因此,对于名为的字段,有一个名为的字段,其中将包含以前的提交数据。这样用户就不必每次都重新上传文件。因此,当字段为空时,我不知道如何编写一个方法来检查

  • vi 可以在命令行下编辑文件。 vi 要编辑的文件路径 练习:编辑文件 vi ninghao-project/README.md 这样会打开要编辑的文件,使用方向键可以移动光标。 编辑 想要编辑按一下小 i ,这样会进入到 vi 编辑器的编辑模式。这时你可以编辑文件里的内容,修改完成以后,按 esc 可以退出编辑模式。 搜索 搜索文件里的内容可以按 / ,然后输入要搜索的关键词,n 继续查找,

  • 问题内容: 例如,我有一个名为的文件。其内容是: 所以在这里我想为每个人添加图片链接 如何编写脚本以将密钥添加到每个人并添加person.name.lowercase +“ .png”作为值? 在此过程结束时,将对people.json进行编辑并将其保存到硬件中,而不是内存中。 非常感谢你。 问题答案: 这是一个完整的程序,使用JavaScript(使用node.js),可以完成所需的工作: 作为