繁体   English   中英

Android中的简单Json解析

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM