【问题标题】:How to store multiple custom objects from an array list into json file in java?java - 如何将数组列表中的多个自定义对象存储到java中的json文件中?
【发布时间】:2025-12-18 01:00:01
【问题描述】:

obBelow 是我写入 JSON 文件的 Java 代码。我对使用 JSON 很陌生。我有一个名为 myAnimals 的数组列表,它有多个动物对象(树懒、猫等)。我想运行一个循环来遍历这些对象并用存储它们的对象填充 JSON 文件。第一个 .put 只是它如何运行的一个示例,而不是 0 我最好有一个像 i 这样的引用变量,它将循环通过,这样我就可以添加所有内容。这个想法是每次将新对象添加到 arraylist 以保持 jsonfile 更新时运行。如果有人可以建议我如何做到这一点,那就太好了。 当前循环的问题是文件每次都会被覆盖,并且只有一个json对象,不多。

public void writeJson(){
    JSONObject obj = new JSONObject();
    obj.put("name", myAnimals.get(0).getAnimalName());
    obj.put("penType", ?);
    obj.put("landSpace", ?);
    obj.put("waterSpace", ?);
    obj.put("airSpace", ?);

    try (FileWriter file = new FileWriter("animals.json")) {

        file.write(obj.toJSONString());
        file.flush();

    } catch (IOException e) {
        e.printStackTrace();
    }

}

【问题讨论】:

  • 如果您只是将json对象写入文件,那么文件的结果内容将不是有效的json,您可能应该使用jsonarray

标签: java json object arraylist filewriter


【解决方案1】:

改变

try (FileWriter file = new FileWriter("animals.json")) {

try (FileWriter file = new FileWriter("animals.json", true)) {

添加真正的布尔值将附加到文件的末尾而不是覆盖它。这将适用于将新文件添加到您的文件以使其保持最新状态。

但是,您需要考虑用户从您的列表中删除动物的情况。在这种情况下,循环整个动物数组列表并覆盖当时您的 animals.json 文件中的任何内容。

【讨论】:

  • 您好,非常感谢!但是添加的对象是在关闭]之后添加的,这显然会产生错误,我该如何解决?
最近更新 更多