2014-09-12 24 views
0

多維數組我有這樣的json這裏:從JSON的Android

[ 
     { 
      "ID": "2", 
      "Item Description": "Data removed for protection", 
      "Link": "Data removed for protection", 
      "Image": "Data removed for protection", 
      "Valid From": "Data removed for protection", 
      "Valid To": "Data removed for protection" 
     }, 
     { 
      "ID": "3", 
      "Item Description": "Data removed for protection", 
      "Link": "Data removed for protection", 
      "Image": "Data removed for protection", 
      "Valid From": "Data removed for protection", 
      "Valid To": "Data removed for protection" 
     }, 
{ 
      "ID": "4", 
      "Item Description": "Data removed for protection", 
      "Link": "Data removed for protection", 
      "Image": "Data removed for protection", 
      "Valid From": "Data removed for protection", 
      "Valid To": "Data removed for protection" 
     } 
    ] 

所以我下載這一個叫jArrayJSONObject。然後,我把它變成一個JSONArray像這樣:

JSONArray json_array = new JSONArray(jArray); 

但是,每當我嘗試訪問它,像這樣:json_array[0][0] IDE將拋出在其上的錯誤,並說:Array type expected; found: 'org.json.JSONArray'

現在,請不要誤解我的意思,但不應該讓JSONArray的行爲方式與訪問多維方面相同?

+0

每個JSONObject,然後檢索數據如何ü可以得出結論,即「JSONArray」給出多維數組作爲數組[] []? – 2014-09-12 17:02:15

回答

3

JSONArray和普通的Java數組是不一樣的。 JSONArray是一個不同的java對象。 @ Kon的回答提供了JSONArray的基本思路。

如果你想從你的JSONArray訪問數據,您可以循環通過它來得到有什麼樣

JSONArray json_array = new JSONArray(jArray); 

    for (int i = 0; i < json_array.length() ; i++) { 
       try{ 
        JSONObject object1 = jsonArray.getJSONObject(i); 
        int id = object1.getInt("ID"); 
        String itemDescription = object1.getString("Item Description");  
        String link = object1.getString("Link"); 
        .....//and so on   
       } 
       catch(Exception e){ 
        e.printStackTrace(); 
        } 
       } 
0

不,它的行爲不應該與多維數組相同。

這是因爲json_array不是一個數組,它是一個不同的Java對象。只有數組可以通過您在上面顯示的特定語法來訪問。您需要查看該課程的文檔,以瞭解如何訪問您想要的信息。它應該提供清晰且有據可查的方法來獲得您所需要的。

你不希望這個語法允許你訪問支持你的類的數組。這將是對封裝的破壞,並且通常是糟糕的設計。

一個很好的起點就在這裏http://www.json.org/javadoc/org/json/JSONArray.html