原文来自: http://www.dewen.org/q/5791
我有三个集合
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格式。
-
0 支持你是根据三个表的实体分别取出数据,然后再组成json吗? – 徐艳 2012-09-20
-
0 支持@王杰 你应该当导演。。 比做程序员有前途多了。 – 冯义军 2012-09-20
-
0 支持公司的电脑上没有这些东西.晚上回家再把我以前写的文章贴上,第一次来德问,这种不是答案的内容回复在评论里没错吧..PS.大致提一下.JSON有专门转换格式的jar包.调用一个方法就可以完成.以前做的小东西,前端是extjs。这东西有集成好的AJAX,利用代理proxy的方式传输JSON格式的字符串.并将其转换成对象供你使用. – ZorroWL 2012-09-21
有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的JSON.toJsonString(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就是最终的结果了