我的工作流程中有一些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),可以完成所需的工作: 作为