json

javabean:Address

 

Java代码    收藏代码
  1. package com.baebae.model;  
  2.   
  3. public class Address  
  4. {  
  5.     private String city;  
  6.     private String district;  
  7.     private String street;  
  8.     private int no;  
  9.   
  10.     getter/setter()...  
  11. }  

 

 

JAVA--JSON互相转换:

 

【1】JAVA——>JSON

 

Java代码    收藏代码
  1. /** 
  2.      * <1> JAVA-->JSON 
  3.      * 单个对象Object-->JSONObject 
  4.      * 集合List/Array/Set----->JSONArray 
  5.      */  
  6.     @Test  
  7.     public void testObj2JSON() throws InterruptedException {  
  8.         // 1.bean---->json  
  9.         Address addr = new Address();  
  10.         addr.setCity("北京");  
  11.         addr.setDistrict("清河");  
  12.         addr.setStreet("安宁庄东路");  
  13.         addr.setNo(200);  
  14.       
  15.         JSONObject jsonObj = JSONObject.fromObject(addr);  
  16.         System.err.println("____________jsonObj_______________");  
  17.         System.out.println(jsonObj);  
  18.         // 1.集合-->JSONArray  
  19.         Set<Address> set = new HashSet<Address>();  
  20.         Address[] addrArray = new Address[100];  
  21.         List<Address> list = new ArrayList<Address>();  
  22.         for(int i=0;i<10;i++){  
  23.             Address address = new Address();  
  24.             address.setCity("北京");  
  25.             address.setDistrict("清河");  
  26.             address.setStreet("安宁庄东路"+i+"号");  
  27.             address.setNo(200+i);  
  28.               
  29.             list.add(address);  
  30.             addrArray[i]=address;  
  31.             set.add(address);  
  32.         }  
  33.         // 这里不能用JSONObject.fromObject(collection)  
  34.         JSONArray jsonList = JSONArray.fromObject(list);  
  35.         JSONArray jsonArray = JSONArray.fromObject(addrArray);  
  36.         JSONArray jsonSet = JSONArray.fromObject(set);  
  37.           
  38.         // 打印结果  
  39.         Thread.sleep(3000);  
  40.         System.err.println("____________jsonList_______________");  
  41.         System.out.println(jsonList);  
  42.         Thread.sleep(3000);  
  43.         System.err.println("_____________jsonArray______________");  
  44.         System.out.println(jsonArray);  
  45.         Thread.sleep(3000);  
  46.         System.err.println("______________jsonSet_____________");  
  47.         System.out.println(jsonSet);  
  48.         Thread.sleep(3000);  
  49.     }  

打印结果:

 

 

Console代码    收藏代码
  1. ____________jsonObj_______________  
  2. {"city":"北京","district":"清河","no":200,"street":"安宁庄东路"}  
  3. ____________jsonList_______________  
  4. [{"city":"北京","district":"清河","no":200,"street":"安宁庄东路0号"},{"city":"北京","district":"清河","no":201,"street":"安宁庄东路1号"},{"city":"北京","district":"清河","no":202,"street":"安宁庄东路2号"},{"city":"北京","district":"清河","no":203,"street":"安宁庄东路3号"},{"city":"北京","district":"清河","no":204,"street":"安宁庄东路4号"},{"city":"北京","district":"清河","no":205,"street":"安宁庄东路5号"},{"city":"北京","district":"清河","no":206,"street":"安宁庄东路6号"},{"city":"北京","district":"清河","no":207,"street":"安宁庄东路7号"},{"city":"北京","district":"清河","no":208,"street":"安宁庄东路8号"},{"city":"北京","district":"清河","no":209,"street":"安宁庄东路9号"}]  
  5. _____________jsonArray______________  
  6. [{"city":"北京","district":"清河","no":200,"street":"安宁庄东路0号"},{"city":"北京","district":"清河","no":201,"street":"安宁庄东路1号"},{"city":"北京","district":"清河","no":202,"street":"安宁庄东路2号"},{"city":"北京","district":"清河","no":203,"street":"安宁庄东路3号"},{"city":"北京","district":"清河","no":204,"street":"安宁庄东路4号"},{"city":"北京","district":"清河","no":205,"street":"安宁庄东路5号"},{"city":"北京","district":"清河","no":206,"street":"安宁庄东路6号"},{"city":"北京","district":"清河","no":207,"street":"安宁庄东路7号"},{"city":"北京","district":"清河","no":208,"street":"安宁庄东路8号"},{"city":"北京","district":"清河","no":209,"street":"安宁庄东路9号"},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]  
  7. ______________jsonSet_____________  
  8. [{"city":"北京","district":"清河","no":207,"street":"安宁庄东路7号"},{"city":"北京","district":"清河","no":202,"street":"安宁庄东路2号"},{"city":"北京","district":"清河","no":200,"street":"安宁庄东路0号"},{"city":"北京","district":"清河","no":204,"street":"安宁庄东路4号"},{"city":"北京","district":"清河","no":205,"street":"安宁庄东路5号"},{"city":"北京","district":"清河","no":208,"street":"安宁庄东路8号"},{"city":"北京","district":"清河","no":209,"street":"安宁庄东路9号"},{"city":"北京","district":"清河","no":203,"street":"安宁庄东路3号"},{"city":"北京","district":"清河","no":206,"street":"安宁庄东路6号"},{"city":"北京","district":"清河","no":201,"street":"安宁庄东路1号"}]  

  --------------------------------------------------------------------------------

 

【2】JSON---->JAVA

Java代码    收藏代码
  1. /** 
  2.      * <2> JSON-->JAVA 
  3.      * 1.如果字段名有错无法匹配,会发出警告;属性得到是null. 
  4.      * 2.转换:     
  5.      *  ->Object 
  6.      *      <1> 字符串封装成JSON 对象:【JSONObject.fromObject(jsonStr)】 
  7.      *      <2> JSON对象转换成Object:【(Address) JSONObject.toBean(jsonObject, Address.class)】 
  8.      *  ->Collection 
  9.      *      <1> 字符串封装成JSONArray 对象:【JSONArray.fromObject(jsonArrayStr)】 
  10.      *      <2> JSONArray对象转换成Java集合:【(List<Address>)JSONArray.toCollection(jsonArray, Address.class)】 
  11.      */  
  12.     @Test  
  13.     public void testJson2Java()  throws InterruptedException {  
  14.         // 1.JSON object  
  15.         String jsonStr = "{\"city\":\"北京\",\"district\":\"清河\",\"street\":\"安宁庄东路南口\",\"no\":500}";  
  16.         // 3.JSONArray  
  17.         String jsonArrayStr = "[{\"city\":\"北京\",\"district\":\"清河\",\"street\":\"安宁庄东路南口\",\"no\":500},{\"city\":\"北京\",\"district\":\"上地\",\"street\":\"安宁庄东路\",\"no\":300}]";  
  18.           
  19.         JSONObject jsonObject = JSONObject.fromObject(jsonStr);  
  20.         JSONArray jsonArray = JSONArray.fromObject(jsonArrayStr);  
  21.           
  22.         // JSONObject.toBean(jasonObject,Class): Bean;  
  23.         Address address  = (Address) JSONObject.toBean(jsonObject, Address.class);  
  24.         List<Address> list = (List<Address>)JSONArray.toCollection(jsonArray, Address.class);  
  25.           
  26.         // 1.输出Object  
  27.         Thread.sleep(1000);  
  28.         System.out.println("District:"+address.getDistrict());  
  29.         // 2.输出Array  
  30.         Thread.sleep(1000);  
  31.         for(Address addr:list){  
  32.             System.out.println(addr.getCity()+"\t"+addr.getDistrict()+"\t"+addr.getStreet()+"\t"+addr.getNo());  
  33.         }  
  34.     }  

 

打印结果:

Console代码    收藏代码
  1. District:清河  
  2. 北京  清河  安宁庄东路南口 500  
  3. 北京  上地  安宁庄东路   300  

 

 

【总结】

JSON————>JAVA:

        ->Object                                                                                      

    <1> 字符串封装成JSON 对象:【JSONObject.fromObject(jsonStr)】                                        

    <2> JSON对象转换成Object:【(Address) JSONObject.toBean(jsonObject, Address.class)】              

        ->Collection                                                                                  

    <1> 字符串封装成JSONArray 对象:【JSONArray.fromObject(jsonArrayStr)】                               

    <2> JSONArray对象转换成Java集合:【(List<Address>)JSONArray.toCollection(jsonArray, Address.class)】

 

JAVA————>JSON:

        ObjectJSONObject.fromObject(addr)

      Collection:【JSONArray.fromObject(list)】

 

参考资料:

1.官方网站:http://sourceforge.net/projects/json-lib

2.所需jar包:

Lib代码    收藏代码
  1. commons-beanutils-1.8.3.jar  
  2. commons-collections-3.2.1.jar  
  3. commons-lang-2.5.jar  
  4. commons-logging-1.1.1.jar  
  5. ezmorph-1.0.6.jar  
  6. json-lib-2.4-jdk15.jar  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值