Json in Java 的使用
来源:互联网 发布:软件测试性能指标 编辑:程序博客网 时间:2024/05/23 11:31
1 json 就是一种数据的组拼形式,举个例子:
{"mine":[{"name":"name0","time":"time0"},{"name":"name1","time":"time1"},{"name":"name2","time":"time2"},{"name":"name3","time":"time3"},{"name":"name4","time":"time4"},{"name":"name5","time":"time5"},{"name":"name6","time":"time6"},{"name":"name7","time":"time7"},{"name":"name8","time":"time8"},{"name":"name9","time":"time9"}],"others":[{"name":"name0"},{"name":"name1"},{"name":"name2"},{"name":"name3"},{"name":"name4"}]}
整体结构是{"mine": xxx,"others":xxxx}, 即{jsonObject,jsonObject,...}有两个JsonObject组成。
第一个JsonObject:
"mine":[{"name":"name0","time":"time0"},{"name":"name1","time":"time1"},{"name":"name2","time":"time2"},{"name":"name3","time":"time3"},{"name":"name4","time":"time4"},{"name":"name5","time":"time5"},{"name":"name6","time":"time6"},{"name":"name7","time":"time7"},{"name":"name8","time":"time8"},{"name":"name9","time":"time9"}]
它的key是mine, 它的value是一个JsonArray,呦[]包裹,[]中间放的是一系列的jsonObject,即[jsonObject,jsonObject,.....]
JsonArray的存储形式类似于ListArray,其中存储的对象类型相同,
JsonObject的存储形式类似于Map,有一系列的Key-value组成而value的类型是多种多样的,可以是一个String对象,也可以是一个ArrayList对象
2 如何使用json来完成数据的组拼?
2.1 根据1中介绍的内容,我们完全可以自己组拼出这样一个json格式的数据,。
优点:不需要导入格外的jar包
缺点:很容易出错,标点符号,大括号等等。。
2.2 使用额外的jar包,一共需要六个jar包,分别是:
- commons-logging-1.0.4.jar
- commons-lang-2.3.jar
- commons-collections-3.2.jar
- commons-beanutils-1.7.0.jar
- json-lib-2.2.1-jdk15.jar
- ezmorph-1.0.4.jar
3 举例:
3.1 组拼出1的的那一串json数据:
public static JSONObject setData(){JSONObject jsonObject = new JSONObject();JSONArray jsonArray = new JSONArray();Mine mine1 = new Mine("name1", "time1");Mine mine2 = new Mine("name2", "time2");List<Mine> list = new ArrayList<Mine>();for(int i=0;i<10;i++){Mine mine = new Mine("name"+i, "time"+i);list.add(mine);}for(int i=0;i<list.size();i++){Mine mine = list.get(i);JSONObject jsonObject2 = new JSONObject();jsonObject2.put("name", mine.getName());jsonObject2.put("time", mine.getTime());jsonArray.add(jsonObject2);}JSONArray jsonArray2 = new JSONArray();List<Others> list2 = new ArrayList<Others>();for(int i=0;i<5;i++){Others others = new Others("name"+i);list2.add(others);}for(int i=0;i<list2.size();i++){Others others = list2.get(i);JSONObject jsonObject2 = new JSONObject();jsonObject2.put("name", others.getName());jsonArray2.add(jsonObject2);}jsonObject.put("mine", jsonArray);jsonObject.put("others", jsonArray2);System.out.println(jsonObject.toString());return jsonObject;}
3.2 往往json格式的数据,是用来数据存储和数据传输的,当拿到json格式的数据之后,我们需要将其解析成我们需要的对象。
public static void getData(JSONObject jsonObject){JSONArray jsonArray = jsonObject.getJSONArray("mine");for(int i=0;i<jsonArray.size();i++){JSONObject jsonObject2 = jsonArray.getJSONObject(i);String name = jsonObject2.getString("name");String time = jsonObject2.getString("time");Mine mine = new Mine(name, time);System.out.println(mine.toString());}}
补充例子中提到的那两个类:
class Mine{private String name;private String time;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public Mine(String name, String time) {super();this.name = name;this.time = time;}@Overridepublic String toString() {return "Mine [name=" + name + ", time=" + time + "]";}}class Others{private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public Others(String name) {super();this.name = name;}@Overridepublic String toString() {return "Others [name=" + name + "]";}}
- Json in Java 的使用
- Java JSON 的使用
- java json的使用
- python json和java json的使用
- json in java 介绍
- JSON in Java
- JSON in JAVA
- json in java
- json in java
- JSON 的 Java基础使用
- java中json的使用
- Java使用Json的方法
- java中json的使用
- java 中json的使用
- Java 中Json的使用
- java 中Json的使用
- java中json的使用
- java中json的使用
- 线程同步
- 来自雅虎的网站优化加速最佳实践
- ubuntu 挂载 nfs 成功后无法umount 提示 device is busy 解决方案
- jquery json
- 在驱动中获得Windows的版本号
- Json in Java 的使用
- VC环境下UDP Socket编程 depend vc2010
- mount.nfs: access denied by server while mounting 一个解决办法
- iOS图形处理类和NSAttributedString
- qemu-guest-agent windows下的监控开发
- Ubuntu下配置NFS服务
- 勉强没有幸福
- C#-Mdi多文档窗口及其子窗口的排列 ---ShinePans
- Linux中搭建SVN服务器