android中的简单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"

我得到了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":"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解析问题。