JSONObject、JSONArray區別


  json,就是一個鍵對應一個值,超級簡單的一對一關系。現在用到的json那可以層層嵌套啊,剛開始接觸的時候,確實有種崩潰的趕腳,不想去理,取個數據還那么麻煩。其實,就跟if else語句一樣,如果if中套if,if中再套if,寫的規范了還行,要是代碼格式不規范,那我們肯定也看着麻煩。所以啊,對於json嵌套,只要記住符號“:”前是鍵,符號后是值大括號成對找,一層層剝開,就清楚了。 舉個例子說明,如下:

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

  從外到里看,例子中就是一個數組,數組里面是兩個json格式的字符串。這樣分析思路就清晰多了。

     工作中需要取出name4的值,你們會怎么取呢?。最初我都想過字符串截取,那時還不了解JSONArray,現在知道了,取出來也就相當容易了。

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

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

  JSONArray.fromObject(String)

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

好了我們說說這兩個對象。

1,JSONObject

  json對象,就是一個鍵對應一個值,使用的是大括號{ },如:{key:value}

2,JSONArray

  json數組,使用中括號[ ],只不過數組里面的項也是json鍵值對格式的

  Json對象中添加的是鍵值對,JSONArray中添加的是Json對象

  1. JSONObject Json = new JSONObject();  
  2. JSONArray JsonArray = new JSONArray();  
  3.   
  4. Json.put("key", "value");//JSONObject對象中添加鍵值對  
  5. JsonArray.add(Json);//將JSONObject對象添加到Json數組中  

3,JSONObject與Map

    Map map和json都是鍵值對,不同的是map中鍵值對中間用等號分開,json中鍵值對中間用冒號分開。其實json就是一種特殊形式的map。

  1. Map<String,String> strmap=new JSONObject();  

    這里的需求是:request對象獲取的map,想要返回json格式也不用白費力了。

 


免責聲明!

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



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