如何在java中将数组列表中的多个自定义对象存储到json文件中?
下面是我要写入JSON文件的Java代码。我对使用JSON非常陌生。我有一个名为myAnimals的arraylist,它有多个动物对象(树懒、猫等)。我想运行一个循环,遍历这些对象并用存储它们的对象填充JSON文件。第一个.put只是它将如何运行的一个示例,而不是0,理想情况下,我应该有一个像I这样的引用变量,它将循环通过,这样我就可以添加所有变量。其思想是每次向arraylist添加新对象时都会运行此操作,以保持jsonfile的更新。如果有人能给我建议怎么做,那就太好了。 循环的当前问题是每次都会覆盖文件,并且只有一个json对象,而不是很多如何在java中将数组列表中的多个自定义对象存储到json文件中?,java,json,object,arraylist,filewriter,Java,Json,Object,Arraylist,Filewriter,下面是我要写入JSON文件的Java代码。我对使用JSON非常陌生。我有一个名为myAnimals的arraylist,它有多个动物对象(树懒、猫等)。我想运行一个循环,遍历这些对象并用存储它们的对象填充JSON文件。第一个.put只是它将如何运行的一个示例,而不是0,理想情况下,我应该有一个像I这样的引用变量,它将循环通过,这样我就可以添加所有变量。其思想是每次向arraylist添加新对象时都会运行此操作,以保持jsonfile的更新。如果有人能给我建议怎么做,那就太好了。 循环的当前问题是
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();
}
}
改变
到
添加真布尔值将附加到文件末尾,而不是覆盖它。这将有助于向文件中添加新文件,使其保持最新
然而,你需要考虑用户从列表中删除动物的情况。在这种情况下,循环整个arraylist of animals并覆盖此时animals.json文件中的任何内容。
如果您只是将json对象写入文件,则文件的结果内容将不是有效的json,您可能应该使用jsonarrayHi,这非常有效,谢谢!然而,添加的对象是在关闭后添加的,这显然会产生错误,我如何解决这个问题?try (FileWriter file = new FileWriter("animals.json")) {
try (FileWriter file = new FileWriter("animals.json", true)) {