java对象集合转json格式
原⽂来⾃:
我有三个集合
ArrayList<Student> list = new ArrayList<Student>();
ArrayList<Classes> list1 = new ArrayList<Classes>();
ArrayList<Teacher> list2 = new ArrayList<Teacher>();
分别对应三个实体,⼈数据库⾥取出了数据,现在要把这三个集合组成⼀个json
{student:{id:1,name:11},classes:{id:2,name:2},teacher:{id:3,name:3}}
请问有什么办法可以做到这样⼦的json格式。
该问题被发起关闭投票
投票剩余时间:(/3)
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:(/3)
发起了声誉值为 分的悬赏
距离悬赏到期还有:
<!--问题已经关闭_begin-->
该问题已经在很久很久以前被关闭 参与关闭投票者: 关闭原因: 该问题如果有必要重新开启?
<!--问题已被锁定_begin-->
该问题已经被锁定
锁定原因:()
<!--问题已被保护_begin-->
该问题已被保护
保护原因:避免来⾃新⽤户不合宜或⽆意义的致谢、跟帖答案。
<!--问题已经成功删除_begin-->
该问题已成功删除,仅对您可见,其他⼈不能够查看。
评论 ( 3)· · · 2012-09-20
0 ⽀持
你是根据三个表的实体分别取出数据,然后再组成json吗?– 2012-09-20
0 ⽀持
@王杰 你应该当导演。。 ⽐做程序员有前途多了。– 2012-09-20
0 ⽀持
公司的电脑上没有这些东西.晚上回家再把我以前写的⽂章贴上,第⼀次来德问,这种不是答案的内容回复在评论⾥没错吧..PS.⼤致提⼀下.JSON有专门转换格式的jar包.调⽤⼀个⽅法就可以完成.以前做的⼩东西,前端是extjs。这东西有集成好的AJAX,利⽤代理proxy的⽅式传输JSON格式的字符串.并将其转换成对象供你使⽤.– 2012-09-21
2个答案
您的投票让 声誉值增加了10分。
⽀持投票,不仅能让回答⽤户获得声誉值,让好答案排序靠前,更能帮助社区筛选出好的内容,构建⾼质量的知识库。
2 票
35
List list = new ArrayList();
json转换对象JSONObject obj = new JSONObject();
obj.put("text", "Absolute");
obj.put("id", "absolute");
list.add(obj);
JSONArray jsonList = JSONArray.fromObject(list);
格式差不多就这样的,你可以借鉴⼀下。
该答案已被锁定,⽆法对其进⾏评论,编辑及投票。
()
评论 ( 0)· · 2012-09-20
您的投票让 声誉值增加了10分。
⽀持投票,不仅能让回答⽤户获得声誉值,让好答案排序靠前,更能帮助社区筛选出好的内容,构建⾼质量的知识库。
1 票
411
有2中⽅法,⼀种是⽤现有的json⼯具类直接转换,⼆就是⾃⼰组装成json。
第⼀种推荐⽤fastjson等,那fastjson来说,
List<Object> list = new ArrayList<Object>;//定义⼀个list列表
list.add(new Arraylist<Student>);//添加学⽣列表
list.add(new Arraylist<Classes>);//添加课程列表
list.add(new Arraylist<Teacher>);//添加⽼师列表
上⾯就是组装成了对象形式,最后调⽤fastjson的JsonString(list);
这样得到的就是json格式的字符串,⾥⾯具体实现不⽤你考虑。
第⼆种⾃⼰来组装json。
组装json使⽤格式的,类似键值对是map型,⽽[]这样的就是list型
先定义最外⾯的json
JsonObject json = new JsonObject();
JSONArray students = new JSONArray();//学⽣类json数组
JsonObject student= new JsonObject();//⼀个学⽣类json
students.put(student);//将学⽣类添加进学⽣类json数组
....同理得到课程json数组和⽼师json数组
最后,添加到⼤的json⾥⾯
json.put(students );
json.put(classes);
json.put(teachers );
json就是最终的结果了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论