我正在构建一个android应用程序,需要下载并与在线数据库同步,我从应用程序发送我的查询到一个php页面,该页面返回JSON格式的数据库中的相关行。
有人能告诉我迭代JSON数组的最好方法吗?
我收到一个对象数组:
[{json object},{json object},{json object}]
我可以用来访问数组中的JSONObjects的最简单的代码是什么?
编辑:现在我想到了我用来迭代循环的方法是:
for (String row: json){
id = row.getInt("id");
name = row.getString("name");
password = row.getString("password");
}
所以我想我已经能够以某种方式将返回的Json转换为可迭代的数组。你知道我怎么才能做到这一点吗?
我为我的流浪道歉,但我从网上找到的一个例子中找到了这个例子,但后来就找不到了。
发布于 2011-06-17 01:31:17
我认为这段代码是简短而清晰的:
int id;
String name;
JSONArray array = new JSONArray(string_of_json_array);
for (int i = 0; i < array.length(); i++) {
JSONObject row = array.getJSONObject(i);
id = row.getInt("id");
name = row.getString("name");
}
这就是你要找的吗?
发布于 2016-05-30 11:01:39
当我尝试@vipw的建议时,我遇到了这样的异常:The method getJSONObject(int) is undefined for the type JSONArray
相反,这对我是有效的:
int myJsonArraySize = myJsonArray.size();
for (int i = 0; i < myJsonArraySize; i++) {
JSONObject myJsonObject = (JSONObject) myJsonArray.get(i);
// Do whatever you have to do to myJsonObject...
}
发布于 2013-02-19 10:46:32
如果您使用的是开源的JSON.org Java implementation,您只需让JSONArray实现Iterable
接口,并将以下方法添加到类中:
@Override
public Iterator iterator() {
return this.myArrayList.iterator();
}
这将使JSONArray的所有实例都可迭代,这意味着for (Object foo : bar)
语法现在可以使用它(请注意,foo必须是一个对象,因为JSONArrays没有声明的类型)。所有这些都是有效的,因为JSONArray类由一个简单的ArrayList支持,它已经是可迭代的。我想其他的开源实现也同样容易修改。
https://stackoverflow.com/questions/3408985
复制相似问题