JSONObject和JSONArray區別及基本用法


1.JSONObject : json對象,就是一個鍵對應一個值,數據是用 { } 來表示的,例如:{”id”:1 , “username”:”wp”}

JSONArray:  json數組,數據是是由JSONObject構成的數組,用 [ { } , { } , ...... , { } ] 來表示,只不過數組里面的項也是json鍵值對格式的  

2.JSONObject與JSONArray使用的場景區別;

想通過鍵值對的形式獲取數據,使用JSONObject。

如果后台查詢的是某個bean的list集合向前端頁面傳遞,使用JSONArray。

3.JSONObject與JSONArray 創建方法區別;

//創建JsonObject第一種方法  

JSONObject jsonObject = new JSONObject();        

jsonObject.put("name", "xuhang");         j 

System.out.println("jsonObject1:" + jsonObject);        

//創建JsonObject第二種方法        

HashMap<String, String> hashMap = new HashMap<String, String>();        

hashMap.put("name", "xuhang");             

System.out.println("jsonObjectJSONArray創建的方法

//創建一個JsonArray方法1        

JSONArray jsonArray = new JSONArray();        

jsonArray.add(0, "xuhang");                   //JSONObject對象中添加鍵值對         

jsonArray.add(1, "426");                         //JSONObject對象中添加鍵值對       

jsonArray.add(2, "624");                          //JSONObject對象中添加鍵值對     

System.out.println("jsonArray1:" + jsonArray);                

//創建JsonArray方法2        

ArrayList<String> arrayList = new ArrayList<String>();        

arrayList.add("xuhang");                                //將JSONObject對象添加到Json數組中   

arrayList.add("426");                                    //將JSONObject對象添加到Json數組中    

arrayList.add("624");                                    //將JSONObject對象添加到Json數組中     

System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));

4.獲取方式不同
獲取JSONObject中值:String userName = jsonObject.getString("UserName");//key值

獲取JSONArray中的值:String userName = arrayList.getString("2");//角標值

5.解析JSON不同

System.err.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");  
        String jsonString = "{\"name\":\"xuhang\",\"age\":\"27\",\"workIn\":\"teacher\",\"Array\":[\"xuhang\",\"33\",\"tools\"]}";
        //將Json字符串轉為java對象
        JSONObject obj = JSONObject.fromObject(jsonString);
        //獲取Object中的UserName
        if (obj.has("name")) {
            System.out.println("name:" + obj.getString("name"));
        }
        //獲取ArrayObject
        if (obj.has("Array")) {
            JSONArray transitListArray = obj.getJSONArray("Array");
            for (int i = 0; i < transitListArray.size(); i++) {
                System.out.print("Array:" + transitListArray.getString(i) + " ");
            }
        }

舉個例子說明,如下:

[{name1:{name2:{name3:'value1',name4:'value2'}}},{}]  

取出name4值過程步驟:1,將以上字符串轉換為JSONArray對象;2,取出對象的第一項,JSONObject對象;3,取出name1的值JSONObject對象;4,取出name2的值JSONObject對象;5,取出name4的值value2。

示例中json數組格式的字符串可以通過方法直接轉換為JSONArray的格式:

JSONArray.fromObject(String)

JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//將結果轉換成JSONArray對象的形式  
JSONObject getJsonObj = getJsonArray.getJSONObject(0);//獲取json數組中的第一項  
String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4"); 

 

一、JSONObject和JSONArray的數據表示形式

JSONObject的數據是用 {  } 來表示的,

        例如:   { "id" : "123", "courseID" : "huangt-test", "title" : "提交作業", "content" : null  }  

而JSONArray,顧名思義是由JSONObject構成的數組,用  [ { } , { } , ......  , { } ]  來表示

       例如:   [ {  "id" : "123", "courseID" : "huangt-test", "title" : "提交作業" }  ,  {  "content" : null, "beginTime" : 1398873600000  "endTime" } ] ; 

        表示了包含2個JSONObject的JSONArray。

可以看到一個很明顯的區別,一個用的是 {  }  ,一個最外面用的是 [  ]  ;

二、如何從字符串String獲得JSONObject對象和JSONArray對象

          JSONObject  jsonObject  = new JSONObject ( String  str);

         JSONArray jsonArray = new JSONArray(String    str  ) ;

 

三、如何從JSONArray中獲得JSONObject對象

       大家可以把JSONArray當成一般的數組來對待,只是獲取的數據內數據的方法不一樣

                   JSONObject   jsonObject = (JSONObject)jsonArray.get(i);

                   JSONObject   jsonObject  =  jsonArray.getJSONObject(i) ;  

  兩者都可。第一種注意轉換 

 

四、獲取JSON內的數據

      int   jid= jsonObject.getInt ( "id" ) ;    //  這里的jid得到的數據就是123.

      String  jcourse=jsonObject.getString( " courseID") ;   // 這里的jcourse得到的數據就是huangt-test.

     Strirng jcourse = jsonObject.get("courseID").toString();

 五、一般地 為鍵值對

                        eg:{  name:"xm", value:"張三"}

                         String jname = null;

                         if(jsonObject.get("name").equals("xm")){

                          jname=jsonObject.get("value").toString();

                        }

                    

 六:  JSON.parse( str )    --> 把字符串轉為JSON對象

         JSON.stringify( obj ) -->把對象解析為字符串

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM