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

时间:2018-05-17 22:49:41

标签: java json object arraylist filewriter

obBelow是我写入JSON文件的Java代码。我很擅长使用JSON。我有一个名为myAnimals的arraylist,它有多个动物对象(懒惰,猫等)。我想运行一个遍历这些对象的循环,并用存储它们的对象填充JSON文件。第一个.put只是它将如何运行的一个例子,而不是0我理想地有一个像我一样的参考变量将循环通过所以我可以添加所有。这个想法是每次将新对象添加到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();
        }

    }

1 个答案:

答案 0 :(得分:0)

变化

ErrorLevel

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

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

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