Android解析这个JSON - 怎么样?

时间:2011-07-19 08:02:42

标签: android json

我的json:

[
    {
        "all": {
            "dates": [
                {
                    "date": "2011-01-18",
                    "name": "asd"
                },
                {
                    "date": "2011-02-19",
                    "name": "ddd"
                },
                {
                    "date": "2011-11-21",
                    "name": "eee"
                }
            ],
            "dep": [
                {
                    "code": "BBB",
                    "name": "BUD"
                }
            ],
            "citys": [
                {
                    "id": "2163",
                    "name": "ASD"
                },
                {
                    "id": "2369",
                    "name": "EFG"
                },

...

我的代码

                JSONArray json = new JSONArray(s); //json string
                for(int i=0;i<json.length();i++){
                    String settings         = json.getJSONObject(i).getString("all");
                    JSONArray jsonarray     = new JSONArray(settings);

                    for (int j=0; j<jsonarray.length();j++){

                        String dates            = jsonarray.getJSONObject(j).getString("dates");
                        JSONArray jsonarray2    = new JSONArray(dates);

                        for (int k=0; k<jsonarray2.length();k++){
                            String date         =    jsonarray2.getJSONObject(k).getString("date");


                            Log.e("date", date);
                        }
..

  

07-19 09:52:31.356:ERROR / ex(19038):org.json.JSONException:Value   { “城市的”:[{ “ID”: “2163”,“...

如何正确解析此文件?

谢谢,Leslie

1 个答案:

答案 0 :(得分:3)

json.getJSONObject(i).getString("all");
JSONArray jsonarray     = new JSONArray(settings);

'all'是一个JSONObject,而不是JSONArray,所以获取JSONObject并获取JSONArrays date,dep,citys。

可以直接从String获取json.getJSONObject(i).getJSONObject("all");或getJSONObject, JSONObject jsonobj = new JSONObject(settings);