从Android中的json对象解析json数组

从Android中的json对象解析json数组,android,arrays,json,Android,Arrays,Json,我试图从服务器接收的字符串中解析JSON数组 数组的示例是 {"data":[{"id":703,"status":0,"number":"123456","name":"Art"}]} 我正试图用下面的代码来解析这个问题,这段代码给了我一个Classcast异常,它表明JSonArray不能被转换为List JSONObject o = new JSONObject(result.toString()); JSONArray slideContent = (JSONArr

我试图从服务器接收的字符串中解析JSON数组

数组的示例是

{"data":[{"id":703,"status":0,"number":"123456","name":"Art"}]}
我正试图用下面的代码来解析这个问题,这段代码给了我一个Classcast异常,它表明JSonArray不能被转换为List

     JSONObject o = new JSONObject(result.toString());
     JSONArray slideContent = (JSONArray) o.get("data");
     Iterator i = ((List<NameValuePair>) slideContent).iterator();
     while (i.hasNext()) {
                     JSONObject slide = (JSONObject) i.next();
                     int title = (Integer)slide.get("id");
                     String Status = (String)slide.get("status");
                     String name = (String)slide.get("name");
                     String number = (String)slide.get("number");
                     Log.v("ONMESSAGE", title + " " + Status + " " + name + " " + number);
                    // System.out.println(title);
                 }
JSONObject o=newjsonobject(result.toString());
JSONArray slideContent=(JSONArray)o.get(“数据”);
迭代器i=((列表)slideContent).Iterator();
while(i.hasNext()){
JSONObject幻灯片=(JSONObject)i.next();
int title=(整数)slide.get(“id”);
字符串状态=(字符串)slide.get(“状态”);
String name=(String)slide.get(“name”);
字符串编号=(字符串)slide.get(“编号”);
Log.v(“ONMESSAGE”,title+“”+Status+“”+name+“”+number);
//系统输出打印项次(标题);
}

解析它的正确方法应该是什么?

这很有意义,因为
JSONArray
不能转换为
列表,也没有迭代器。
JSONArray有一个
length()
属性返回其长度,并有几个
get(int index)
方法允许您检索该位置的元素

因此,考虑到所有这些因素,您可能希望写以下内容:

JSONObject o = new JSONObject(result.toString());
JSONArray slideContent = o.getJSONArray("data");

for(int i = 0 ; i < slideContent.length() ; i++) {
    int title = slideContent.getInt("id");
    String Status = slideContent.getString("status");
    // Get your other values here
}
JSONObject o=newjsonobject(result.toString());
JSONArray slideContent=o.getJSONArray(“数据”);
对于(int i=0;i
您应该这样做:

JSONObject o = new JSONObject(result.toString());  
JSONArray array = jsonObject.getJSONArray("data");  
JSONObject jtemp ;  
ArrayList<MData/*a sample class to store data details*/> dataArray= new ArrayList<MData>();
MData mData;

    for(int i=0;i<array.length();i++)
    {
        mData = new MData();
        jtemp = array.getJSONObject(i);  //get i record of your array
        //do some thing with this like  
        String id = jtemp.getString("id"); 
        mData.setId(Integer.parseInt(id));
        ///and other details  
        dataArray.put(mData);  
   }  

你能给我看一下从中获取值的代码吗?对不起,我没有看到答案。谢谢你的回答。非常感谢。可能是重复的
class MData{
  private int id;
  /....

 public void setId(int id){
     this.id = id;
 }
 //.....
}