1. 程式人生 > >JSONObject和JSONArray物件的建立方法

JSONObject和JSONArray物件的建立方法

 1.json-lib-2.4-jdk15及其依賴jar包,需要注意的是所依賴jar包之間的相容性,僅僅是匯入json-lib是不夠的,包括commons-logging-1.1.1.jar日誌包,xom(XOM ™ 是一種新的 XML 物件模型。 它是一個開源 (LGPL),用於處理 XML 和 Java 力求正確性、 簡單化和效能,在這基於樹的 API)等

2.JSONOBject物件的建立,基於JSONobject的靜態方法fromObject進行建立

    1.通過JSONObject()建構函式建立JSON物件

Java程式碼  收藏程式碼
  1. JSONObject jObject = new
     JSONObject();  
  2.          /* 
  3.           * json物件新增資料的三種方式 
  4.           *     --|public Object put(Object,key,Object value) 
  5.           *     --|public JSONObject accumulate (String key, Object value)  
  6.           *     --|public JSONObject element (String key, Object value)  
  7.           */  
  8.          //通過element往jObject物件中新增資料,如果key為Null,將會移除當前key
      
  9.          jObject.element("name""zhangsan");  
  10.          jObject.element("sex""girl");  
  11.          jObject.element("age"16);  
  12.          //關聯一個key得到與之對應的value值  
  13.          System.out.println(jObject.get("name"));  
  14.          System.out.println(jObject.getInt("age"));  
  15.         //如果key為null,則返回值為null,並不會拋異常
      
  16.          System.out.println(jObject.get("work"));    
  17.          JSONObject jsonObject = new JSONObject()  
  18.                                     .element("string""JSON")     
  19.                                     .element("integer""1")  
  20.                                     .element("double""2.0")  
  21.                                     .element("boolean""true");  
 

  2.靜態方法fromObject()的呼叫,使用格式化json字串來建立jsonobject物件

Java程式碼  收藏程式碼
  1. String jsonStr = "{\"age\":12,\"name\":\"wangwu\"}";  
  2.          JSONObject jsonOb = JSONObject.fromObject(jsonStr);  
  3.         System.out.println(jsonOb.toString());  
  4.         String jsonstr1 = "{\"age\":17,\"integer\":1,\"boolean\":true,\"double\":2.0}";  
  5.         JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonstr1);  
  6.         System.out.println(json.getInt("integer"));  
  7.         System.out.println(json.getDouble("double"));  
  8.         System.out.println(json.getString("age"));  
  9.         System.out.println(json.getBoolean("boolean"));  
  10.                 bject.getInt("age"));  
  11.         //如果key為null,則返回值為null,並不會拋異常  
  12.          System.out.println(jObject.get("work"));    
  13.          JSONObject jsonObject = new JSONObject()  
  14.                                     .element("string""JSON")     
  15.                                     .element("integer""1")  
  16.                                     .element("double""2.0")  
 

  3.使用一個map來建立JSONObject物件

Java程式碼  收藏程式碼
  1.               Map<String,Object> map = new HashMap<String, Object>();  
  2. map.put("age"12);  
  3. map.put("boolean"true);  
  4. map.put("double",2.0);  
  5. map.put("integer"null);  
  6. JSONObject json2 = (JSONObject) JSONSerializer.toJSON(map);  
  7. System.out.println(json2.getDouble("double"));  
  8. System.out.println(json2.getBoolean("boolean"));  
  9. //JSONNULL物件,如果元素的值為null,此情況下null不再是java中的null,而返回一個JSONNULL物件  
  10. System.out.println(JSONNull.getInstance().equals(json2.get("integer")));  //true  
 

  4.使用一個javabean來建立JSONObject物件

Java程式碼  收藏程式碼
  1. <span style="font-size: medium;">           MyBean mybean = new MyBean();  
  2.         mybean.setBoole(true);  
  3.         mybean.setDouble(2.0);  
  4.         mybean.setInteger(1);  
  5.         mybean.setString("zhangsan");  
  6.         JSONObject jsonobje  = (JSONObject) JSONSerializer.toJSON(mybean);  
  7.         System.out.println(jsonobje.getString("string"));</span>  

3.JSONArray物件的建立

Java程式碼  收藏程式碼
  1. <span style="font-size: medium;">package cn.spring.jsonobject;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. import net.sf.json.JSONArray;  
  5. import net.sf.json.JSONObject;  
  6. import net.sf.json.JSONSerializer;  
  7. /** 
  8.  * 建立JSONArray 
  9.  * @author Administrator 
  10.  * 
  11.  */  
  12. public class JSONArrarys {  
  13.     public static void main(String[] args) {  
  14.         /* 
  15.          * 檢查呼叫正確的 JSONArray 工廠方法的物件型別。 
  16.          * 接受 JSON 格式字串、 陣列、 集合和列舉。  
  17.          */  
  18.         //1,建立一個JSONArray  
  19.         JSONObject jSObject = (JSONObject) JSONSerializer.toJSON("{\"name\":\"zhangsan\",\"age\":\"12\"}");  
  20.         JSONArray jsonarray = new JSONArray().element("json")  
  21.                         .element("1")  
  22.                         .element("2.0")  
  23.                         .element("true")  
  24.                         .element(jSObject); //JSONArray物件中新增JSONObject物件  
  25.         Object[] array = jsonarray.toArray();  
  26.         for(int i=0;i<array.length;i++){  
  27.             System.out.println(array[i]);  
  28.         }  
  29.         System.out.println(jsonarray.toString()); //["json","1","2.0","true",{"name":"zhangsan","age":"12"}]  
  30.         System.out.println("---------------------------");  
  31.         //2.使用一個格式化json字串建立JSONArray  
  32.         String jarray = "['json','1','2.0','true',{'name':'zhangsan','age':'12'}]";  
  33.         JSONArray jsonArray = JSONArray.fromObject(jarray);  
  34.         System.out.println(jsonArray.get(4));  
  35.         System.out.println("---------------------------");  
  36.         //3.使用一個collection集合建立JSONArray  
  37.         List<Object> list = new ArrayList<Object>();  
  38.         list.add("json");  
  39.         list.add("1");  
  40.         list.add(jSObject);  
  41.         JSONArray jsonArray2 = JSONArray.fromObject(list);  
  42.         System.out.println(jsonArray2.toString());  
  43.         System.out.println(jsonArray2.get(2));  
  44.         System.out.println("---------------------------");  
  45.         //使用一個Array陣列來建立JSONArray  
  46.         Object[] arr = new Object[]{"json","1",jSObject};  
  47.         JSONArray jsonArray3 = JSONArray.fromObject(arr);  
  48.         System.out.println(jsonArray3.toString());  
  49.         System.out.println(jsonArray3.get(2));  
  50.     }  
  51. }  
  52. </span>  

【原文:http://724073277.iteye.com/blog/1489935】