【发布时间】:2016-06-14 13:15:06
【问题描述】:
我对 JSON 很陌生,这是我试图从服务器检索 JSON 的操作
datafromServer = bufferedReader.readLine();
inputStream.close();
JSONArray jsonArray = new JSONArray(datafromServer );
遇到了这个异常:
org.json.JSONException: 值 {"last_name":"Hicks","id":18,"email":"dwaynehicks@usssulaco.com","first_name":"Dwayne"} org.json.JSONObject 类型的无法转换为 JSONArray
于是我找到了this 答案:
JSONObject object = new JSONObject(result);
JSONArray Jarray = object.getJSONArray("contacts");
for (int i = 0; i < Jarray.length(); i++) {
JSONObject Jasonobject = Jarray.getJSONObject(i);
现在,问题是,在答案中,OP 的对象形成为:
"contacts": [{
.....
.....
]
在这个 JSON 中。虽然我得到了(没有键映射到这一行):
{"last_name":"Hicks","id":18,"email":"dwaynehicks@usssulaco.com","first_name":"Dwayne"}
那么我是如何修改*JSONArray Jarray = object.getJSONArray("contacts");*这一行的呢?
我没有这样的钥匙。
谢谢
【问题讨论】:
-
尝试
JSONObject obj = new JSONObject(dataFromServer)而不是JSONArray -
所有 JSON 格式都是 '{"last_name":"Hicks","id":18,"email":"dwaynehicks@usssulaco.com","first_name":"Dwayne"}'您正在尝试阅读,或者这只是其中的一部分?
-
谢谢你们……你们正确地回答了我的问题,因为我问的不是异常而是 structure 访问。 :D