【发布时间】:2015-06-04 14:30:19
【问题描述】:
我在解析 JSON 数组方面需要帮助。
[
{
"Header1": [
{
"path": "upload/images/1430572021716.jpg"
},
{
"path": "upload/images/1430574003703.jpg"
}
]
},
{
"Header2": [
{
"path": "upload/images/1430574124119.jpg"
},
{
"path": "upload/images/1430574203001.jpg"
}
]
}
]
我完美地收到了上面的 JSONArray。我想遍历数组并提取标题文本“Header1”和路径的值
我不断遇到以下错误消息
at 0 of type org.json.jsonarray cannot be converted to jsonobject
经过一番研究,这是由于系统无法解析为 JSON 数组。如果我将“列表”数组更改为一个对象,它确实有效,但是这不是一个数组,我失去了迭代它的能力。
这是我尝试解析数组的代码
JSONArray mArray;
mArray = json;
//download json array
for (int i = 0; i < mArray.length(); i++) {
if(mArray != null) {
JSONArray list = mArray.getJSONArray(i);
if(list != null) {
for(int a = 0; a < list.length();a++) {
JSONObject elem = list.getJSONObject(a);
if (elem != null) {
listdata.add(elem.getString("path"));
}
}
}
}
}
【问题讨论】:
-
您的 JSON 响应具有这种结构。 Array(Object(Array(Object)) 你在做什么,Array(Array(Object))
-
我的目的是让您使用 POJO 对 JSON 进行建模,然后让 Gson 之类的东西为您解析它。看起来你的模型会很简单,这也会大大降低代码的圈复杂度。