gpt4 book ai didi

java - 不正确的 JSONException

转载 作者:行者123 更新时间:2023-11-29 19:16:17 26 4
gpt4 key购买 nike

我正在尝试使用来自 Guardian API 的 JSON 对象。

这是我调用的结果:

https://pastebin.com/wqggLEeZ

这是我的代码

JSONObject root = new JSONObject(jsonData);
JSONArray resultArray = root.getJSONObject("response").getJSONArray("results");

for(int i=0;i<resultArray.length();i++) {
JSONObject resultElement = resultArray.getJSONObject(i);
JSONObject blocksElement = resultElement.getJSONObject("blocks");
JSONObject mainElement = blocksElement.getJSONObject("main");
JSONArray elementsArray = mainElement.getJSONArray("elements");
JSONObject elementsElement = elementsArray.getJSONObject(0);
JSONArray assetsArray = elementsElement.getJSONArray("assets");
JSONObject assetsElement = assetsArray.getJSONObject(0);

String imageUrl = assetsElement.getString("file");
String articleTitle = resultElement.getString("webTitle");

news.add(new NewsList(articleTitle, imageUrl));
}

除了在 3 个元素 (i=2) 处停止之外,代码工作正常

我尝试用“测试”字符串替换 imageUrl

news.add(new NewsList(articleTitle, imageUrl));

但它仍然停留在 3 个元素上。

但是当我注释掉它找到 imageUrl 的部分时,整个代码可以正常工作并给我 10 个结果,就像它应该做的那样:

JSONObject root = new JSONObject(jsonData);
JSONArray resultArray = root.getJSONObject("response").getJSONArray("results");

for(int i=0;i<resultArray.length();i++){
JSONObject resultElement = resultArray.getJSONObject(i);
/*
JSONObject blocksElement = resultElement.getJSONObject("blocks");
JSONObject mainElement = blocksElement.getJSONObject("main");
JSONArray elementsArray = mainElement.getJSONArray("elements");
JSONObject elementsElement = elementsArray.getJSONObject(0);
JSONArray assetsArray = elementsElement.getJSONArray("assets");
JSONObject assetsElement = assetsArray.getJSONObject(0);
String imageUrl = assetsElement.getString("file");
*/

String articleTitle = resultElement.getString("webTitle");

news.add(new NewsList(articleTitle, "test"));
}

我在 Android 监视器中环顾四周,它似乎有一个问题,上面写着

org.json.JSONException: No value for main

但这不正确,因为找到前 3 个结果的 URL 没有任何问题,问题仅在循环迭代 3 次后出现,我找不到发生这种情况的任何原因。

最佳答案

到处使用“opt”而不是“get”,例如:

JSONObject assetsElement = assetsArray.optJSONObject(0);
String imageUrl = assetsElement.optString("file");

关于java - 不正确的 JSONException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43426334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com