如何将数组列表中的多个自定义对象存储到 java 中的 json 文件中?

How to store multiple custom objects from an array list into json file in java?

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

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();
    }

}

改变

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

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

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

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