java中json数据格式的应用

时间:2022-08-17 19:02:08
 

java中json数据格式的应用

分类: json 333人阅读 评论(0) 收藏 举报 jsonjavastringlistclassobject

最近做的项目中有一个android的客户端,但是由于手机

如果用xml格式传输数据速度慢而且还费去多余的流量,在网上百度的时候看见了,json的格式.

在这我自己把笔记做上,以防以后忘记,呵呵.....  

我这人的记性总是不好!!!!

首先介绍一下json的数据,说白了,它就和xml没有什么大的分别,就是将数据封装起来,以便于在网络上传输或者是使程序易读去.在这我就不多说了,网上很多的比我讲的要清楚!!!!

由于我的项目中是对与在集合中类封装,所以在这我直接将集合中的类.....封装即解析做一下笔记,其他的基本上都是大同小异!!!

[java] view plaincopy
  1. /* 
  2.  * pojo类,也是我们将要封装的属性类 
  3.  */  
  4. public class Info {  
  5.   
  6.     private String name;  
  7.     private String address;  
  8.   
  9.     public String getName() {  
  10.         return name;  
  11.     }  
  12.   
  13.     public void setName(String name) {  
  14.         this.name = name;  
  15.     }  
  16.   
  17.     public String getAddress() {  
  18.         return address;  
  19.     }  
  20.   
  21.     public void setAddress(String address) {  
  22.         this.address = address;  
  23.     }  
  24.   
  25. }  
下一步:将属性类封装到集合中,以及将这个集合转换成json字符串数据![java] view plaincopy
  1. import java.util.Vector;  
  2. import net.sf.json.JSONArray;  
  3.   
  4. public class Json {  
  5.       
  6.     /* 
  7.      * 将一个list集合封装成json数据后 
  8.      * 它是以字符串的形式发送的!!! 
  9.      */  
  10.     public String json() {  
  11.         Vector<Info> list = new Vector<Info>();  
  12.         Info a = new Info();  
  13.         a.setName("xiaohun");  
  14.         a.setAddress("xian");  
  15.         list.add(a);  
  16.         JSONArray json = new JSONArray().fromObject(list);  
  17.         String jon = json.toString();  
  18.         return jon;  
  19.         /* 
  20.          * jon的结果为一下形式 
  21.          * []为集合的识别符 
  22.          * {}为类的识别符 
  23.          * [{"address":"xian","name":"xiaohun"}] 
  24.          */  
  25.     }  
  26.   
  27. }  

然后:数据传输到客户端后的解析.

但是注意,如果直接解析成你生成前的类时,要在客户端同样有一个你生成前的类;着这个例子中位Info.class

[java] view plaincopy
  1. import net.sf.json.JSONArray;  
  2. import net.sf.json.JSONObject;  
  3. import java.util.Vector;  
  4.   
  5. public class JsonToBean {  
  6.   
  7.     public Vector<Info> getBean(String json) {  
  8.         //服务端传来的json数据是集合封装成的所以用JSONArray解析  
  9.         JSONArray arr = new JSONArray().fromObject(json);  
  10.         //准备存放解析后的数据集合  
  11.         Vector<Info> list = new Vector<Info>();  
  12.         //由于是集合所以循环取出每一个集合内的类  
  13.         for (int i = 0; i < arr.size(); i++) {  
  14.             /* 
  15.              * 将JSONArray的单一属性转换为Object等待转换Javabean 
  16.              * 经过这一步后数据就分解成多个 
  17.              * {"address":"xian","name":"xiaohun"} 
  18.              */  
  19.             JSONObject obj = new JSONObject().fromObject(arr.getJSONObject(i));  
  20.             //将json数据自动的转变成javabean  
  21.             Object object = obj.toBean(obj, Info.class);  
  22.             Info info = (Info) object;  
  23.             System.out.println(info.getName());  
  24.             list.add(info);  
  25.         }  
  26.         return list;  
  27.     }  
  28. }  

项目中所用的jar包:

commons-beanutils-1.7.0.jar

commons-collections-3.2.jar

commons-lang-2.0.jar

commons-logging-1.0.4.jar

ezmorph-1.0.2.jar

json-lib-2.4-jdk15.jar

下载地址