我正在使用for循环将数据写入JSON文件,我的问题是每次都会将所有数据写入文件还是会创建一个新的.json文件?
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("def");
list.add("xyz");
for (String name : list) {
JSONObject obj = new JSONObject();
obj.put("Name:", name);
try (FileWriter file = new FileWriter("C:\\Users\\elements.json")) {
file.write(obj.toJSONString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:4)
请这样更新您的代码。
...
FileWriter file = new FileWriter("C:\Users\elements.json")
for (String name : list) {
JSONObject obj = new JSONObject();
obj.put("Name:", name);
file.write(obj.toJSONString());
}
file.flush();
...
否则,请使用字符串变量将所有json存储为一个字符串变量,然后立即将字符串变量写入文件。
答案 1 :(得分:0)
相反,您可以使用Jackson的ObjectMapper映射整个列表对象。
List<String> list = new ArrayList<>();
list.add("abc");
list.add("def");
list.add("xyz");
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.writeValue(new File("elements.json"), list);