申明:没工作之前都没听过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的嵌套形式,可能有忽略的也可以参考上面的内容。

java中json数据_java中的JSON对象的使用相关推荐

  1. java中怎么使用json数据_JAVA中使用JSON进行数据传递

    1.是不是只有xml传递数据的技术才是webservice? 可以这么理解.webservice是基于SOAP协议,SOAP协议是基于XML的文本协议.所以webservice可以简单理解为是基于XM ...

  2. java中怎么使用json数据_java中使用Json数据

    PS:11.15看了一下午终于把项目中flexigrid中复杂封装数据类型--->json-->返回前台显示的整个过程:原理看明白了!!! 1.json理解: 步骤1: 就是把后台的Lis ...

  3. java中json数据_Java中json的使用 解析json数据

    1.java提取json嵌套多层的数据 json数据为: { "res": [{ "name": "0", "text" ...

  4. java遍历json数据_Java 如何遍历JsonObject对象

    方法: iterator iter = jsoninfo.entryset().iterator(); 代码示例: public class test { public static void mai ...

  5. java 游标 查数据_Java中的大量数据查询

    问题描述:在通常的三层构架下,客户通过Browser请求Web服务器查询数据库,而查询结果是上千条甚至是上百万条记录,要求查询结果传送到客户端浏览器并分页显示. 考虑因素: 1. Web服务器的资源消 ...

  6. java request get json数据_Java中,获取request中json数据

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** ...

  7. java获取response数据_Java中实现Http请求并获取响应数据

    前言 在演示的功能代码中使用的请求http地址为:http://timor.tech/api/holiday/year/ 接口说明:获取指定年份或年月份的所有节假日信息.默认返回当前年份的所有信息. ...

  8. java set中取数据_Java中取数据库用的ResultSet问题

    这段时间做java项目,在操作数据库的时候,犯了一个错误,请看下面的程序 .......                        //前面连接数据库方面的省略 ResultSet  result ...

  9. java 从excel中读取数据_java中怎样从Excel中读写数据

    展开全部 public class ReadExcel001 { public static void main(String[] args) { readXml("D:/test.xlsx ...

最新文章

  1. R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集
  2. git 移动分支指针_图解4种git合并分支方法
  3. java定时器的使用(Timer)
  4. matlab多元约束最小值,无约束多变量最小值求解问题
  5. nodemanager不能正常关闭_家居燃气安全,燃气阀门的开与关可不能不当回事
  6. 理解 invokedynamic
  7. pb 如何导出csv_backtrader如何加载股票因子数据?以换手率、市盈率为例进行回测【附Python代码】
  8. Linux编程(11)_信号
  9. WIN10+Ubuntu16.4 双系统,遇到的坑
  10. CentOS6.5 安装+ Tengine + PHP + MySQL
  11. atitit.RESTful服务的概览and框架选型
  12. 廖雪峰python3复习总结——day2-1
  13. .NET简谈分层架构思想(彻底分离每个层)
  14. 3月第4周网络安全报告:境内76.2万个主机感染病毒
  15. QQ游戏连连看自动化脚本(仅限学习交流)
  16. matlab 插值出错,MATLAB插值问题
  17. 实验一计算机网络基础知识,计算机网络实验基础知识 集线器的使用
  18. 一个SparkSQL作业的一生
  19. AR涂涂乐项目之识别图制作制作地球仪线框二
  20. 51驱动AD9850/AD9851—DDS信号发生器

热门文章

  1. redis 3.0的集群部署
  2. ORACLE EBS R12 - 寄售功能知多少
  3. QDir的mkdir和mkpath区别
  4. 如何做一名出色的屌丝码农?
  5. POJ 1797 Heavy Transportation
  6. 再学 GDI+[62]: 路径画刷(2) - SetCenterPoint、GetCenterPoint
  7. RedisConf2018记录--Day 1 sessions
  8. 版本控制之svn命令行下检出、提交、更新
  9. DEDECMS给图集图片{dede:productimagelist}自动编号
  10. [转] 值得推荐的C/C++框架和库