我目前正在构建一个GSONFileWriter类。
public class GSONFileWriter {
private File jsonFile;
private final String json;
public GSONFileWriter(String json) {
this.json = json;
}
public void generateJsonFileIfNotExists(String pathname) {
try {
jsonFile = new File(pathname);
if (!jsonFile.exists()) {
if (jsonFile.createNewFile()) {
System.out.println("File successful created.");
} else {
System.out.println("Error: Building the file went wrong!");
System.exit(1);
}
}
fillJsonFile();
} catch (Exception e) {
System.err.println("Error: Building the file went wrong!");
}
}
private void fillJsonFile() {
try (PrintWriter writer = new PrintWriter(jsonFile, StandardCharsets.UTF_8)) {
writer.append(json);
writer.println();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在CLI类内部调用
Gson gson = new Gson();
String json = gson.toJson(target);
GSONFileWriter gsonFileWriter = new GSONFileWriter(json);
gsonFileWriter.generateJsonFileIfNotExists("EmployeeData.json");
它创建并构建一个新的JSON文件,其中包含一个对象。
{"salary":34000.0,"name":"Hans","age":30,"id":"d40507a7-a802-4494-9a0c-5a97a0a4d0bf"}
然而问题是,每当我再次运行代码,旧文件被覆盖,并创建一个新的.我试图改变代码,使它添加一个新的对象到文件,而不是覆盖它.任何提示?
1条答案
按热度按时间eni9jsuy1#
我建议:首先:以String形式读取json文件(如果存在)。
其次,使用JsonParser将此字符串转换为JsonObject:
现在您已经获得了jsonObject树形式的json-file文件,并且可以根据需要对其进行操作。使用:
等等。
无论何时完成,您都可以通过
OutputStream
或任何您喜欢的方式将其写入json-file。