java gson保存到本地,如何在json文件中使用gson保存数据?

In my web application I succeed in displaying data in html table using mybatis. Now I want to save the records of the Mysql table in a json file and create an array of users, I used Gson, the problem is that just one record saved in the file. Thanks.

Here the result in file.json:

{"data":

[

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

]

}

servlet.java

SqlSession session = MyBatisSqlSessionFactory.getSession();

List 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();

解决方案

You write all the users in same file C:\\file.json so just the last iteration of the loop saved.

You can convert the object List into json and write it once (no needed loop)

Example:

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

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

gson.toJson(users, writer);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值