我从url获取Json数据,数据采用这种格式。
{
"Android": {
"candidate": [
{
"id": "2466965",
"candidate_name": "Surajit Ray"
},
{
"id": "2468313",
"candidate_name": "Ankit Dixit"
}
]
}
}
我想解析这个json数据,我正在使用这种技术。
try {
// ***** Creates a new JSONObject with name/value mappings from the JSON string. *******
jsonResponse = new JSONObject(Content);
// **** Returns the value mapped by name if it exists and is a JSONArray. **
// ****** Returns null otherwise. ******
JSONArray jsonMainNode = jsonResponse.optJSONArray("Android");
//JSONArray jsonMainNode= jsonResponse.getJSONArray("Android").getJSONObject(0).getJSONArray("candidate");
// ********** Process each JSON Node ***********
int lengthJsonArr = jsonMainNode.length();
System.out.println("length is " + lengthJsonArr);
for(int i=0; i < lengthJsonArr; i++)
{
// ***** Get Object for each JSON node.**********
JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
// ****** Fetch node values *********
String ide = jsonChildNode.optString("id").toString();
String name = jsonChildNode.optString("candidate_name").toString();
//String number = jsonChildNode.optString("number").toString();
//String date_added = jsonChildNode.optString("date_added").toString();
OutputData +="id is"+ide+ " Name : " + name;
/* +" " + "Number : "+ number +" "
+ "Time : "+ date_added +" " +"-------------------------------------------------- ";
*/
}
Toast.makeText(getApplicationContext(),"parsed data is "+OutputData,Toast.LENGTH_LONG).show();
但是这给了我error.please引导我作为各种json格式是什么以及我们如何在String中解析它们。
答案 0 :(得分:1)
你的问题是Android不是JSONArray,它是一个对象。使用相应的方法获取JsonObjects。