[英]Simple Json parsing in android
我得到了Json的回应。 我无法从字符串中获取值。我的字符串是
Json_response是
{"NameAllList":[{"Current":{"time":"2012-02-21T08:04:21","Name":"abcd"},
"Next":{"Name":"data1","StartTime":"2012-02-21T08:06:21"}},{"Current":{"time":"2012-02-21T08:14:21","Name":"defg"},
"Next":{"Name":"data2","StartTime":"2012-02-21T08:24:21"}},{"Current":{"time":"2012-02-21T08:28:21","Name":"ghij"},
"Next":{"Name":"data3","StartTime":"2012-02-21T08:34:21"}},{"Current":{"time":"2012-02-21T08:40:21","Name":"knmo"},
"Next":{"Name":"data4","StartTime":"2012-02-21T08:48:21"}}]}
我尝试了这个
JSONObject jsonObj = new JSONObject(json_response);
JSONObject subObj = jsonObj.getJSONObject("Current");
String name_current =subObj.getString("Name");
但我无法获得“名称”的值。 我犯了什么错误。 提供进行上述解析的链接。
首先,您的JSON响应将NameAllList作为对象的JSON数组。
因此,您必须先获取JSON Array,然后才能获取一对一对象。
例如:
JSONObject jsonString = (new JSONObject(json_response_string));
JSONArray array = jsonString.getJSONArray("NameAllList");
for(int i=0; i<array.length(); i++)
{
// Retrieve Current object as such
JSONObject objCurrent = array.getJSONObject("Current");
// Retrieve Next object as such
JSONObject objNext = array.getJSONObject("Next");
}
似乎您应该在第二个请求中使用JSONArray时尝试使用JSONObject。 尝试这个:
JSONObject jsonString = (new JSONObject(json_response_string));
JSONArray array = jsonString.getJSONArray("NameAllList");
在JSON返回中,“ NameAllList实际上是一个数组,需要这样处理。将其设置为“ array”后,便可以运行for循环并将其与Java中的任何其他数组一样对待。
让我知道是否有帮助。
大卫
您没有正确解析json,因此无法获取Name的值。 请注意,JSON Annotation []表示JSONArray,{}表示JSONObject,因此获取当前项名称的方法是:
JSONObject jsonObj = new JSONObject(json_response_string);
JSONArray jsonArr=jsonObj.getJSONArray("NameAllList");
String Hora_name_current="";
for(int i=0;i<jsonArr.length();i++)
{
JSONObject obj=jsonArr.get(i);
try{
JSONObject subObj = obj.getJSONObject("Current");
Hora_name_current =subObj.getString("Name");
break;
}catch(JSONException ex)
{
}
}
JSONObject jsonObj =新的JSONObject(json_response_string); JSONArray jsonArray = jsonObj.getJSONArrays(“ NameAllList”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.