如何使用gson将数据保存在json文件中?

在我的Web应用程序中,我成功使用mybatis在html表中显示了数据。现在,我想将Mysql表的记录保存在一个json文件中并创建一个用户数组,我使用了Gson,问题是文件中只保存了一条记录。谢谢。

结果file.json如下:

{"data":

[

{"id":2,"Name":"Mike"}

]

}

SqlSession session = MyBatisSqlSessionFactory.getSession();

List<User> users = session.selectList("dao.UserDao.findAll");

for (User u : users) {

Gson gson = new Gson();

try {

JsonWriter writer = new JsonWriter(new FileWriter("C:\\file.json"));

writer.beginObject();

writer.name("data");

writer.beginArray();

writer.beginObject();

writer.name("id").value(t.getId());

writer.name("name").value(t.getNom());

writer.endObject();

writer.endArray();

writer.endObject();

writer.close();

} catch (IOException e) {

e.printStackTrace();

}

}

session.close();

回答:

您将所有用户写入同一文件,C:\\file.json因此只保存了循环的最后一次迭代。

您可以将对象List<User>转换为json并写入一次(无需循环)

例:

try (Writer writer = new FileWriter("Output.json")) {

Gson gson = new GsonBuilder().create();

gson.toJson(users, writer);

}

以上是 如何使用gson将数据保存在json文件中? 的全部内容, 来源链接: utcz.com/qa/428772.html

回到顶部