2014-09-30 157 views
0

任何機構能告訴我如何解析這種類型的json在android中?Android:如何解析JSON數組對象

[ 
    [ 
     { 
     "condition_id":"1", 
     "condition_name":"Type 1 Diebetics" 
     } 
    ], 
    [ 
     { 
     "condition_id":"2", 
     "condition_name":"Type 2 dypatise" 
     } 
    ] 
] 

感謝

解決

非常感謝您nayoso 它爲我工作。

String jsonString = "[ 
    [ 
     { 
     "condition_id":"1", 
     "condition_name":"Type 1 Diebetics" 
     } 
    ], 
    [ 
     { 
     "condition_id":"2", 
     "condition_name":"Type 2 dypatise" 
     } 
    ] 
]"; 
JSONArray jsonArray = new JSONArray(jsonString); 
for(int i=0;i<jsonArray.length(),i++) { 
    JSONArray childJsonArray = jsonArray.getJSONArray(i); 
    JSONObject contentJsonObject = childJsonArray.getJSONObject(0); 
    String conditionID = contentJsonObject.getString('condition_id'); 
    String conditionName = contentJsonObject.getString('condition_name'); 
    Log.i("TAG","Index "+i+" condition_id "+conditionID+" condition_name "+conditionName); 
} 

您可以使用org.json庫輕鬆完成此操作。整個事情是一個JSONArray;在位置0(使用.get(0))你有另一個JSONArray;在位置0處,您有一個JSONObject,它將鍵映射到值(使用.getString())。

謝謝chiastic-security也讓我明白。

+0

[這](https://developer.android.com/reference/ android/util/JsonReader.html)幾乎可以解釋它。 – 2014-09-30 09:32:52

+0

感謝您的迴應我讀過它。 – 2014-09-30 09:34:04

+0

爲何讓我反對這個問題的投票? – 2014-09-30 09:58:35

回答

2

您可以使用內置的JSONArray和JSONObject的類

String jsonString = "[ 
    [ 
     { 
     "condition_id":"1", 
     "condition_name":"Type 1 Diebetics" 
     } 
    ], 
    [ 
     { 
     "condition_id":"2", 
     "condition_name":"Type 2 dypatise" 
     } 
    ] 
]"; 
JSONArray jsonArray = new JSONArray(jsonString); 
for(int i=0;i<jsonArray.length(),i++) { 
    JSONArray childJsonArray = jsonArray.getJSONArray(i); 
    JSONObject contentJsonObject = childJsonArray.getJSONObject(0); 
    String conditionID = contentJsonObject.getString('condition_id'); 
    String conditionName = contentJsonObject.getString('condition_name'); 
    Log.i("TAG","Index "+i+" condition_id "+conditionID+" condition_name "+conditionName); 
} 
+0

我得到這個異常org.json.JSONException:價值[{「condition_id」:「2」,「condition_name」:「類型2 dypatise」}]在1類型org.json.JSONArray無法轉換爲JSONObject – 2014-09-30 09:45:38

+0

也致命異常:AsyncTask#1 java.lang.RuntimeException:執行doInBackground()時發生錯誤 和java.lang.NoSuchMethodError:org.json.JSONArray。 2014-09-30 09:49:03

+0

其解決了,我得到的價值非常感謝, – 2014-09-30 09:53:55

1

您可以使用org.json庫輕鬆完成此操作。整個事情是一個JSONArray;在位置0(使用.get(0))您有另一個JSONArray;在位置0處,您有一個JSONObject,它將鍵映射到值(使用.getString())。

1

試試這個

String data = ""; //your json data string 
JSONArray jarray = new JSONArray(data); 

for(int i = 0;i < jarray.length(); i++) { 
    JSONArray jarry1 = jarray.getJSONArray(i); 
    for(int j = 0; j < jarry1.length(); j++) { 
     JSONObject jobj = jarry1.getJSONObject(0); 
     String ConditionId = jobj.getString("condition_id"); 
     String ConditionName = jobj.getString("condition_name"); 
    } 
} 
1
JSONArray jsonarray=new JSONArray(your_data); 
       for(int i=0;i<jsonarray.length();i++) 
       { 
        JSONArray array=jsonarray.getJSONArray(i); 
        for(int j=0;j<array.length();j++) 
        { 
         JSONObject jsonObject=array.getJSONObject(0); 
         String ConditionId=jsonObject.getString("condition_id"); 
         String ConditionName=jsonObject.getString("condition_name"); 
        } 
       } 
0
 JSONArray jsonArray = new JSONArray("Your Data"); 
     JSONArray tempArray ; 
     net.sf.json.JSONObject tempJson ; 
     for(int i = 0 ; i < jsonArray.length() ; i++) 
     { 
      tempArray = jsonArray.getJSONArray(i); 

      tempJson = tempArray.getJSONObject(0); 

      tempJson.get("condition_id"); 

      ....data So On 
     }