Android:如何解析JSON数组对象

Android:如何解析JSON数组对象

问题描述:

任何机构能告诉我如何解析这种类型的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

您可以使用内置的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

您可以使用org.json库轻松完成此操作。整个事情是一个JSONArray;在位置0(使用.get(0))您有另一个JSONArray;在位置0处,您有一个JSONObject,它将键映射到值(使用.getString())。

试试这个

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"); 
    } 
} 

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"); 
        } 
       } 

 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 
     }