-1

可能重复:
Android/Java 中的 JSON 数组迭代

我正在开发一个使用以下JSONWeb 服务代码的应用程序。一切正常,并以 JSON 数组的形式获得响应。我不知道如何将 JSON 数组转换为字符串。我得到的响应是以下模式..

Json 响应

[
{
     "Id":101,
     "Movie":"xxxxx",
     "Available":
        [             
            {
              "date":"31-08-2012",
              "timings":
                  [
                   "10:15",
                   "10:30",
                   "10:40"
                   ]
            },
            {
                "date":"1-09-2012",
                "timings":
                    [
                     "10:15",
                     "10:30",
                     "10:40"
                     ]
            }
        ]
}
]

这是我得到的回应。谁能建议我如何将以下 Json 响应转换为 android 中的字符串,我想在 android 本机的 listview 中显示该数据。

4

2 回答 2

1

检查链接

它显示了与服务器通信并以 Json 格式获取响应的完整示例。

虽然在这个 PHP 中使用了 MySql,但我猜你得到的 json 响应对于所有语言都是相同的。

于 2012-09-10T10:32:48.463 回答
0

查看此示例并根据您的需要进行转换

ps:一个json数组是以[开头并以]结尾的一个json对象以{开头并以}结尾,所以在你的情况下可用的是一个json数组,它的第一个对象包含一个json字符串日期和另一个json数组计时

JSONArray ja =jso.getJSONArray("Available");





            for (int i = 0; i < ja.length(); i++) {
                JSONObject jobj=ja.getJSONObject(i);
                xyz[i]=jobj.getString("date");
                abcd[i]=jobj.getJSONArray("timings").tostring;


            }


            }

编辑:

    ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();
   JSONParser jParser = new JSONParser(); 
   JSONArray json = jParser.getJSONFromUrl(url);
   try { for (int i=0; i< json.length(); i++) {
    JSONObject details = json.getJSONObject(i);
    String id = details.getString("Id");
    String name = details.getString("Name");
    HashMap<String, String> map = new HashMap<String, String>(); 
   map.put(TAG_ID, id); map.put(TAG_NAME, name);


    contactList.add(map)
    JSONArray ja=details.getJSONArray("Available");

        for (int i = 0; i < ja.length(); i++) {
            JSONObject jobj=ja.getJSONObject(i);
           String a =jobj.getString("date");
          String b   =jobj.getJSONArray("timings").tostring;
    HashMap<String, String> map2 = new HashMap<String, String>(); 
   map2.put("a", a); map2.put("b", b);
    contactList.add(map2)

        }

     }
于 2012-09-10T10:26:48.017 回答