我正在尝试解析json数组“itemList”:
{
"itemsCount": "1309",
"itemList": [
{ name: "xxx",
id: "01"
},
{ name: "yyy",
id: "02"
}
]
}
但我得到了“json例外:没有价值” 当我使用以下代码时。
String json = jsonParser.makeHttpRequest(URL_ALBUMS, "GET", params);
Log.d("Albums JSON: ", "> " + json);
try {
jsonObject = new JSONObject().getJSONObject("itemList");
albums = jsonObject.getJSONArray("itemList");
if (albums != null) {
for (int i = 0; i < albums.length(); i++) {
JSONObject c = albums.getJSONObject(i);
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_ID, id);
map.put(TAG_NAME, name);
albumsList.add(map);
}
}else{
Log.d("Albums: ", "null");
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
在日志中我能够看到json值。我在以下几行中遇到错误。
jsonObject = new JSONObject().getJSONObject("itemList");
albums = jsonObject.getJSONArray("itemList");
我是新手。帮助我解决它。 提前致谢
答案 0 :(得分:1)
您需要发送json字符串以创建json对象。
jsonObject = new JSONObject(json);
albums = jsonObject.getJSONArray("itemList");
答案 1 :(得分:0)
如果此任务不是教育/学术,我建议您使用 JSON Mapper 。 例如杰克逊或 GSON 。 “手动”解析这样的JSON只是浪费时间和代码,使其更容易出错。
使用映射器执行相同的操作将是两行代码,字面意思。
答案 2 :(得分:0)
试试这种方式
jsonObject = new JSONObject(json);