在Java中将JSON转换为List>
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中将JSON转换为List>,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2153字,纯文字阅读大概需要4分钟。
内容图文
![在Java中将JSON转换为List>](/upload/InfoBanner/zyjiaocheng/779/bc5399aa427f435794264d298d5fc197.jpg)
我这样用Json String,
json= [{"id":"1","label":"2","code":"3"},{"id":"4","label":"5","code":"6"}]
我尝试通过这种方式将它转换为Java Object,使用Gson,
和一个名为Item.java的Pojo,其中包含id,label和code以及getter setter字段.
String id;
String label;
String code;
//getter setters
Gson gson = new Gson();
List<Item> items = gson.fromJson(json, new TypeToken<List<Item>>(){}.getType());
然后用这种方式将Java Object转换为List,
List<String> strings = new ArrayList<String>();
for (Object object : items) {
strings.add(object != null ? object.toString() : null);
}
我的输出是这样的,
[Item [id=1, label=2, code=3], Item [id=6, label=5, code=6]
但我需要它作为List< List< String>>没有[项目]即,
[[id=1, label=2, code=3],[id=4, label=5, code=6]]
or direct
List<List<String>>
没有钥匙.
[[1, 2, 3],[4, 5, 6]]
我错过了什么?有人可以帮助我吗?
解决方法:
您已发布的代码会为您提供一个列表< Item>,因此您只是不确定如何构建List< List< String>>出来的.
你在这做什么:
for (Object object : items) {
没有利用item是List< Item>而不是List< Object>这一事实.
您可以创建一个增强的for循环,将实际的Item拉出来,如下所示:
for (Item item : items) {
这将允许您正确访问其中的数据以构建子列表:
String json = "[{id:1,label:2,code:3},{id:4,label:5,code:6}]";
List<Item> items = new Gson().fromJson(json, new TypeToken<List<Item>>(){}.getType());
List<List<String>> listOfLists = new ArrayList<>();
for (Item item : items) {
List<String> subList = new ArrayList<>();
subList.add(item.getId());
subList.add(item.getLabel());
subList.add(item.getCode());
listOfLists.add(subList);
}
System.out.println(listOfLists); // [[1, 2, 3], [4, 5, 6]]
然而
如果只是你不喜欢List< Item>的输出格式,修复代码的一种更简单的方法就是覆盖toString(),以便打印出你需要的东西.
如果我在Item中创建toString()方法,如下所示:
public class Item {
private String id;
private String label;
private String code;
@Override
public String toString() {
return "[" + id + ", " + label + ", " + code + "]";
}
// getters, setters...
}
…然后当我打印List< Item>它看起来像你想要的方式:
String json = "[{id:1,label:2,code:3},{id:4,label:5,code:6}]";
List<Item> items = new Gson().fromJson(json, new TypeToken<List<Item>>(){}.getType());
System.out.println(items); // [[1, 2, 3], [4, 5, 6]]
内容总结
以上是互联网集市为您收集整理的在Java中将JSON转换为List>全部内容,希望文章能够帮你解决在Java中将JSON转换为List>所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。