1

我有这样的 JSON 响应:

{"response": 
{"legislators": 
    [
        {"legislator": 
            {
                               "fax": "", "name": "John Doe"
            }
        }
    ]
}
}

立法者阵列下只有 1 个元素。我尝试使用第零个索引访问它,但我无法访问它。我得到一个“org.json.JSONException:索引 0 超出范围 [0..0)”。我究竟做错了什么?

                        JSONObject response = jsonObject
                            .getJSONObject("response");
                    JSONArray legislators = response
                            .getJSONArray("legislators");
                    JSONObject first = legislators..getJSONObject(0).getJSONObject("legislator");

                    Log.i("Kuscco", "" + first.getString("name"));
4

1 回答 1

3

在检索 JSONObject“响应”之前,您必须将字符串响应视为一个大的 JSON 对象。然后您可以继续获取 JSONArray 和其中的第一个对象。

试试这个代码开始:

String jsonStr = "{\"response\": {\"legislators\": [ {\"legislator\": {\"fax\": \"\", \"name\": \"John Doe\"}}]}}";
JSONObject object;
try {
    object = new JSONObject(jsonStr);
    JSONObject response = object.getJSONObject("response");
    JSONArray legislators = response.getJSONArray("legislators");
    JSONObject first = legislators.getJSONObject(0).getJSONObject("legislator");
    Log.d("Kuscco STACK ++++++ ", "" + first.getString("name"));
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2013-08-02T05:37:57.587 回答