android中的简单Json解析
我得到了Json响应。我无法从字符串中获取值。我的字符串为 Json_响应为android中的简单Json解析,android,json,parsing,Android,Json,Parsing,我得到了Json响应。我无法从字符串中获取值。我的字符串为 Json_响应为 {"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"
{"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");
但是我无法得到Name的值。我犯了多大的错误。提供执行上述解析的链接。看起来您正在尝试使用JSONObject,而第二个请求应该使用JSONArray。试试这个:
JSONObject jsonString = (new JSONObject(json_response_string));
JSONArray array = jsonString.getJSONArray("NameAllList");
在JSON返回中,NameAllList实际上是一个数组,需要这样处理。一旦将其设置为array,就可以运行for循环,并将其与Java中的任何其他数组一样处理
如果有帮助,请告诉我
David看起来像是在尝试使用JSONObject,而第二个请求应该使用JSONArray。试试这个:
JSONObject jsonString = (new JSONObject(json_response_string));
JSONArray array = jsonString.getJSONArray("NameAllList");
在JSON返回中,NameAllList实际上是一个数组,需要这样处理。一旦将其设置为array,就可以运行for循环,并将其与Java中的任何其他数组一样处理
如果有帮助,请告诉我
David您没有正确解析json,因此无法获取名称的值。请注意,JSON注释[]表示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)
{
}
}
您没有正确解析json,所以无法获取名称的值。请注意,JSON注释[]表示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_响应_字符串;
JSONArray JSONArray=jsonObj.getJSONArraysNameAllList JSONObject jsonObj=新的JSONObjectjson\u响应字符串;
JSONArray JSONArray=jsonObj.getJSONArraysNameAllList 首先,JSON响应将NameAllList作为对象的JSON数组 因此,您必须首先获取JSON数组,然后才能逐个获取对象 例如:
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");
}
首先,JSON响应将NameAllList作为对象的JSON数组 因此,您必须首先获取JSON数组,然后才能逐个获取对象 例如:
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");
}
如果没有这样的字符串的转义序列,你怎么能创建字符串变量呢。所以我编辑了。你怎么能用这样的字符串创建没有转义序列的字符串变量呢?是的,我们不能。所以我编辑了。我写的更详细的例子:。PS:我知道我不能自我推广我的博客,但我认为这会让用户对JSON解析感到困惑。如果你的内容确实与问题密切相关,为什么你不能自我推广呢?@沉默我们不能,我知道这条规则,根据这条规则,版主会注意,他们会警告你同样的活动,如果你在警告之后仍然坚持这样做,那么你将在一段时间内保持这种状态。而且很多声誉可能会被收回。嗨,帕雷什,谢谢你的回复。我已经包括了你的代码。这给了我以下的错误。JSONArray类型中的方法GetJSONObject不适用于此行的参数字符串:JSONObject ObjectCurrent=array.GetJSONObject Current;给出一个解决方案!!!我刚才试图解释JSON解析的实现。请自己尝试一下,最好能完全理解它,这样以后就可以轻松地解决JSON解析问题。我写的更详细的示例:。PS:我知道我不能自我推广我的博客,但我认为这会让用户对JSON解析感到困惑。如果你的内容确实与问题密切相关,为什么你不能自我推广呢?@沉默我们不能,我知道这条规则,根据这条规则,版主会注意,他们会警告你同样的活动,如果你在警告之后仍然坚持这样做,那么你将在一段时间内保持这种状态。而且很多声誉可能会被收回。嗨,帕雷什,谢谢你的回复。我已经包括了你的代码。这给了我以下的错误。JSONArray类型中的方法GetJSONObject不适用于此行的参数字符串:JSONObject ObjectCurrent=array.GetJSONObject Current;给出一个解决方案!!!我刚才试图解释JSON解析的实现。请自己尝试一下,最好能完全理解它,这样以后就可以轻松地解决JSON解析问题。