使用for循环编写JSON文件

时间:2019-10-03 20:26:22

标签: java json

我正在使用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();

  }
}

2 个答案:

答案 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);