java中使用json

使用json-lib-2.3-jdk15.jar和ezmorph-1.0.6.jar
如果要JSON和XML转换要使用xom-1.0.jar

Java代码   收藏代码
  1. import java.util.ArrayList;  
  2. import java.util.HashMap;  
  3. import java.util.Map;  
  4.   
  5. import org.junit.Test;  
  6.   
  7. import net.sf.json.JSON;  
  8. import net.sf.json.JSONArray;  
  9. import net.sf.json.JSONObject;  
  10. import net.sf.json.JSONSerializer;  
  11. import net.sf.json.xml.XMLSerializer;  
  12.   
  13.   
  14.   
  15. public class JunitTest {  
  16.       
  17.     public static void main(String[] args) {  
  18.           
  19.     }  
  20.       
  21.     /** 
  22.      * 将Map转换为JSON对象 
  23.      */  
  24.     @Test  
  25.     public void testMap(){  
  26.         Map map = new HashMap();   
  27.         map.put( "name""json" );   
  28.         map.put( "bool", Boolean.TRUE );   
  29.   
  30.         map.put( "int"new Integer(1) );   
  31.         map.put( "arr"new String[]{"a","b"} );   
  32.         map.put( "func""function(i){ return this.arr[i]; }" );   
  33.         JSONObject json = JSONObject.fromObject( map );   
  34.         System.out.println( json );   
  35.     }  
  36.       
  37.     @Test  
  38.     public void JsonToMap(){  
  39.         String str = "{\"age\":2,\"name\":\"zhangsan\"}";  
  40.         JSONObject resultJSON = JSONObject.fromObject(str);  
  41.         Map mapp = (Map)JSONObject.toBean(resultJSON, Map.class);  
  42.         System.out.println(mapp.get("name"));  
  43.     }  
  44.       
  45.     /** 
  46.      * 将Bean转换为Json对象 
  47.      */  
  48.     @Test  
  49.     public void testBean(){  
  50.         JSONObject jsonObject = JSONObject.fromObject( new Person() );  
  51.         System.out.println( jsonObject );  
  52.         //{"age":0,"name":""}  
  53.           
  54.         Person p1 = new Person();  
  55.         p1.setAge(2);  
  56.         p1.setName("zhangsan");  
  57.         JSONObject json = JSONObject.fromObject(p1);  
  58.         System.out.println( json );  
  59.           
  60.     }  
  61.       
  62.     /** 
  63.      * 将BeanList转换为JSON对象 
  64.      */  
  65.     @Test  
  66.     public void testBeans(){  
  67.           
  68.         ArrayList<Person> al = new ArrayList<Person>();  
  69.           
  70.         Person p1 = new Person();  
  71.         Person p2 = new Person();  
  72.           
  73.         p1.setAge(2);  
  74.         p1.setName("zhangsan");  
  75.           
  76.         p2.setAge(2);  
  77.         p2.setName("zhangsan");  
  78.           
  79.         al.add(p1);  
  80.         al.add(p2);  
  81.         //上面使用的是ArrayList对象,所以下面就要使用JSONArray  
  82.         JSONArray jo = JSONArray.fromObject(al);  
  83.         System.out.println(jo);  
  84.     }  
  85.       
  86.     /** 
  87.      * 将JSON转换为Bean对象 
  88.      */  
  89.     @Test  
  90.     public void testStringToBean(){  
  91.         String str = "{\"age\":2,\"name\":\"zhangsan\"}";  
  92.         JSONObject jsonObject = JSONObject.fromObject(str);  
  93.         //需要指明转换为那个类  
  94.         Person bean = (Person)JSONObject.toBean(jsonObject,Person.class);  
  95.         System.out.println(bean.getAge());  
  96.         System.out.println(bean.getName());  
  97.     }  
  98.       
  99.     /** 
  100.      * 将字符串JSON格式转换为BeanList对象 
  101.      */  
  102.     @Test  
  103.     public void testJsonToList(){  
  104.         String str = "[{\"age\":2,\"name\":\"zhangsan\"},{\"age\":1,\"name\":\"hb\"}]";  
  105.         JSONArray array = JSONArray.fromObject(str);  
  106.         Object[] objs = new Object[array.size()];  
  107.         for(int i = 0; i < array.size(); i++){           
  108.             JSONObject jsonObject = array.getJSONObject(i);           
  109.             objs[i] = JSONObject.toBean(jsonObject, Person.class);           
  110.         }           
  111.         for(int i = 0; i < objs.length; i++){  
  112.             System.out.println(((Person)objs[i]).getAge());  
  113.             System.out.println(((Person)objs[i]).getName());  
  114.         }  
  115.           
  116.     }  
  117.       
  118.     /** 
  119.      * 如果要使用JSON与XML相互转换,必须导入xom.jar 
  120.      * 将JSON对象转换为XML格式 
  121.      */  
  122.     @Test  
  123.     public void jsonToXML(){  
  124.         String jsonStr = "[{\"age\":2,\"name\":\"zhangsan\"},{\"age\":1,\"name\":\"hb\"}]";  
  125.         XMLSerializer xmlSerializer = new XMLSerializer();   
  126.         JSON json = JSONSerializer.toJSON(jsonStr);     
  127.         xmlSerializer.setTypeHintsEnabled( false );      
  128.         xmlSerializer.setRootName("body" );     
  129.         String xml = xmlSerializer.write( json );     
  130.         System.out.println(xml);    
  131.           
  132.     }  
  133.       
  134.     /** 
  135.      * 将XML格式的文件转换为JSON格式 
  136.      */  
  137.     @Test  
  138.     public void XMLToJson(){  
  139.         String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><body><e><age>2</age><name>zhangsan</name></e><e><age>1</age><name>hb</name></e></body>";  
  140.         String result = new XMLSerializer().read(xml).toString();   
  141.         System.out.println(result);  
  142.     }  
  143. }  

 现在AJAX用得越来越广泛了,前端和sever端的数据传递使用JSON格式来交互,这里我简单的介绍一下server端将对象转换为JSON格式提供给前端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值