从Android中的json对象解析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
{"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;
}
//.....
}