java中json数据_java中的JSON对象的使用

申明:没工作之前都没听过JSON,可能是自己太菜了。可能在前台AJAX接触到JSON,这几天要求在纯java的编程中,返回JSON字符串形式。

网上有两种解析JSON对象的jar包:JSON-lib.jar和json.jar,这里主要介绍JSON-lib.jar。

jar包地址如下:

一、JSON-lib.jar还依赖以下jar包:

commons-lang.jar

commons-beanutils.jar

commons-collections.jar

commons-logging.jar

ezmorph.jar

json-lib-2.2.2-jdk15.jar

二、应用

JSON也是以key-value形式存在的。key是字符串,value可以是基本类型、JSONArray、JSONObject.

JSONArray:[],望文生义也知道,他是数组形式,又可要放多个JSON

JSONObject:{}就放一个JSON。

由于他们的他们可以嵌套形式就比较多。

三、输出JSON实例考虑到对[]、{}进行对比,区别重复的变量,对变量名进行了首字母大写,显得不规范了。

importnet.sf.json.JSONArray;importnet.sf.json.JSONObject;public classJSONTest {public static voidmain(String[] args) {

JSONObject container1= newJSONObject();

container1.put("ClassName", "高三一班");

System.out.println(container1.toString());

JSONArray className= newJSONArray();

className.add("高三一班");

container1.put("className", className);

System.out.println(container1.toString());

JSONObject classInfo= newJSONObject();

classInfo.put("stuCount", 50);

classInfo.put("leader", "rah");

container1.put("classInfo", classInfo);

System.out.println(container1);

JSONObject ClassInfo= newJSONObject();

JSONArray stuCount= newJSONArray();

stuCount.add(50);

JSONArray leader= newJSONArray();

leader.add("rah");

ClassInfo.put("stuCount", stuCount);

ClassInfo.put("leader", leader);

container1.put("ClassInfo", ClassInfo);

System.out.println(container1);

JSONArray students= newJSONArray();

JSONObject studentOne= newJSONObject();

studentOne.put("name", "张麻子");

studentOne.put("sex", "男");

studentOne.put("age", 12);

studentOne.put("hobby", "java develop");

JSONObject studentTwo= newJSONObject();

studentTwo.put("name", "王瘸子");

studentTwo.put("sex", "男");

studentTwo.put("age", 13);

studentTwo.put("hobby", "C/C++ develop");

students.add(studentOne);

students.add(studentTwo);

container1.put("students", students);

System.out.println(container1);

JSONArray Students= newJSONArray();

JSONObject StudnetOne= newJSONObject();

JSONArray name1= newJSONArray();

name1.add("张麻子");

JSONArray sex1= newJSONArray();

sex1.add("男");

JSONArray age1= newJSONArray();

age1.add("12");

JSONArray hobby1= newJSONArray();

hobby1.add("java develop");

StudnetOne.put("name", name1);

StudnetOne.put("sex", sex1);

StudnetOne.put("age", age1);

StudnetOne.put("hobby", hobby1);

JSONObject StudnetTwo= newJSONObject();

JSONArray name2= newJSONArray();

name2.add("王瘸子");

JSONArray sex2= newJSONArray();

sex2.add("男");

JSONArray age2= newJSONArray();

age2.add("13");

JSONArray hobby2= newJSONArray();

hobby2.add("C/C++ develop");

StudnetTwo.put("name", name2);

StudnetTwo.put("sex", sex2);

StudnetTwo.put("age", age2);

StudnetTwo.put("hobby", hobby2);

Students.add(StudnetOne);

Students.add(StudnetTwo);

container1.put("Students", Students);

System.out.println(container1);

JSONArray teachers= newJSONArray();

teachers.add(0,"王老师");

teachers.add(1,"李老师 ");

container1.put("teachers", teachers);

System.out.println(container1);

JSONArray Teachers= newJSONArray();

JSONObject teacher1= newJSONObject();

teacher1.put("name", "小梅");

teacher1.put("introduce","他是一个好老师");

JSONObject teacher2= newJSONObject();

teacher2.put("name", "小李");

teacher2.put("introduce","他是一个合格的老师");

Teachers.add(0,teacher1);

Teachers.add(1,teacher2);

container1.put("Teachers", Teachers);

System.out.println(container1);

}

}

运行结果:

{"ClassName":"高三一班"}

{"ClassName":"高三一班","className":["高三一班"]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"}}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]}}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"张麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"张麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}],"Students":[{"name":["张麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"张麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}],"Students":[{"name":["张麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}],"teachers":["王老师","李老师 "]}

{"ClassName":"高三一班","className":["高三一班"],"classInfo":{"stuCount":50,"leader":"rah"},"ClassInfo":{"stuCount":[50],"leader":["rah"]},"students":[{"name":"张麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}],"Students":[{"name":["张麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}],"teachers":["王老师","李老师 "],"Teachers":[{"name":"小梅","introduce":"他是一个好老师"},{"name":"小李","introduce":"他是一个合格的老师"}]}

四、遍历JSON实例

以上面的输出的JSON字符串进行按顺序给它遍历

String ClassName1 = (String) container1.get("ClassName");

System.out.println("ClassName data is: " +ClassName1);

JSONArray className1= container1.getJSONArray("className");

System.out.println("className data is: " +className1);

JSONObject classInfo1= container1.getJSONObject("classInfo");

System.out.println("classInfo data is: " +classInfo1);

JSONObject ClassInfo1= container1.getJSONObject("ClassInfo");

System.out.println("ClassInfo data is: " +ClassInfo1);

JSONArray students1= container1.getJSONArray("students");

System.out.println("students data is: " +students1);

JSONArray Students1= container1.getJSONArray("Students");

System.out.println("Students data is: " +Students1);

JSONArray teachers1= container1.getJSONArray("teachers");for(int i=0; i < teachers1.size(); i++){

System.out.println("teahcer " + i + " is: "+teachers1.get(i));

}

JSONArray Teachers1= container1.getJSONArray("Teachers");for(int i=0; i < Teachers1.size(); i++){

System.out.println("Teachers " + i + " is: "+Teachers1.get(i));

}

遍历结果:

ClassName data is: 高三一班

className data is: ["高三一班"]

classInfo data is: {"stuCount":50,"leader":"rah"}

ClassInfo data is: {"stuCount":[50],"leader":["rah"]}

students data is: [{"name":"张麻子","sex":"男","age":12,"hobby":"java develop"},{"name":"王瘸子","sex":"男","age":13,"hobby":"C/C++ develop"}]

Students data is: [{"name":["张麻子"],"sex":["男"],"age":["12"],"hobby":["java develop"]},{"name":["王瘸子"],"sex":["男"],"age":["13"],"hobby":["C/C++ develop"]}]

teahcer0is: 王老师

teahcer1is: 李老师

Teachers0 is: {"name":"小梅","introduce":"他是一个好老师"}

Teachers1 is: {"name":"小李","introduce":"他是一个合格的老师"}

上面包括了大部份的JSON的嵌套形式,可能有忽略的也可以参考上面的内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值