【发布时间】:2015-05-09 08:18:03
【问题描述】:
我目前是 Json 的新手,遇到了一个问题。我搜索了很多,但找不到答案!
我正在从 json url 获取名称列表。名称可以在此 json 文件中重复,但我只想将它们的一条记录保存到我称为“arr”的新数组中。可以看到代码如下:
JSONArray interests = json.getJSONArray("Interests");
JSONArray arr = new JSONArray();
int i = 0;
int p = 0;
int e = 0;
for (; i < interests.length(); i++) {
JSONArray items = interests.getJSONObject(i).getJSONArray("items");
for (int j = 0; j < items.length(); j++) {
String string = items.getJSONObject(j).getString("authors");
String[] parts = string.split(",");
for (int k = parts.length - 1; k >= 0; k--) {
for (int a = 0; a <= arr.length(); a++) {
if (arr.length() == 0 || !arr.getJSONObject(a).getString("label").equals(parts[k])) {
JSONObject obj = new JSONObject();
obj.put("id", p++);
// obj.put("value", e++);
obj.put("label", parts[k]);
arr.put(obj);
}
}
}
}
}
System.out.print(arr);
}
问题是当我运行此代码时出现以下错误:
线程“主”org.json.JSONException 中的异常:未找到 JSONArray[1]。
我尝试在每次迭代中打印 arr.length() 并得到 1!但我真的不知道为什么我会收到这个错误?!
提前致谢
【问题讨论】:
-
你能发布导致这种情况的 JSON 吗?
-
是的,我可以发布 json。事实上,我想通过删除重复的名称来清理我的 json 文件。我可以发送我不干净的 json 并且它运行良好,只有当我用这个检查它时: for (int a = 0; a
标签: java arrays json jsonobject