gpt4 book ai didi

java - 在文件中的json数组中添加记录

转载 作者:行者123 更新时间:2023-12-01 19:49:09 24 4
gpt4 key购买 nike

我有一个像这样的 json 数组

[
{"submitted":"Bob","limit":0,"ID":123,"target":3},
{"submitted":"Kate","limit":500,"ID":3221,"target":2}
]

我需要找到一种方法,如何将记录插入该文件,而不覆盖文件,或将所有内容加载到内存中

目前我正在这样做

 try (FileWriter file = new FileWriter("C:/test/output.json", true);
BufferedWriter bfile = new BufferedWriter(file);
PrintWriter outFile = new PrintWriter(bfile))
{
outFile.write(obj.toJSONString()+System.lineSeparator());
outFile.flush();
}
catch (IOException e) {
e.printStackTrace();
}

最佳答案

您可以使用 org.json 读取和写入 json 对象和数组,如下所示。但我不确定是否可以编辑 json 文件而不将其读入内存。

package yourPackage;

import org.json.JSONArray;
import org.json.JSONObject;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Main {
public static void main(String[] args) throws IOException {
JSONArray root = new JSONArray(new String(Files.readAllBytes(Paths.get("test.json"))));

JSONObject obj = new JSONObject();
obj.put("submitted","");
obj.put("limit", 0);
obj.put("ID", 123);
obj.put("target", 3);

root.put(obj);

Files.write(Paths.get("test.json"), root.toString().getBytes());
}
}

org.json 的 Maven 依赖:

    <!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>

关于java - 在文件中的json数组中添加记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52064428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com