JSONArray 中的 JSONArray

湿婆佩鲁马尔

我需要创建一个位于另一个 JSONArray 内的 JSONArray 对象。这是我必须解析的json

我需要访问照片数组内的照片数组中的标题、id 和 image_url

下面是我试过的代码。

 private static List<ImagelistActivity> extractFeatureFromJson(String flickrJSON) {
    if (TextUtils.isEmpty(flickrJSON)) {
        return null;
    }
    List<ImagelistActivity> images = new ArrayList<>();

    try {
        JSONObject baseJsonResponse = new JSONObject(flickrJSON);
        JSONObject photos = baseJsonResponse.getJSONObject("photos");
        JSONArray photo = photos.getJSONArray("photo");

        for (int i = 0; i < photo.length(); i++) {

            JSONObject currentImage = photo.getJSONObject(i);

            String id = currentImage.getString("id");

            String url = currentImage.getString("url_s");

            String title = currentImage.getString("title");

            ImagelistActivity img = new ImagelistActivity(id, title, url);

            images.add(img);
        }

    } catch (JSONException e) {
        .
        Log.e("QueryUtils", "Problem parsing the Image JSON results", e);
    }


    return images;
}

但这不起作用

org.json.JSONException: 没有照片值

简·阿斯特罗

您的 JSON 格式如下:

照片 > 照片

因此,首先,您必须获取 JSONObject 照片,然后从那里获取照片数组。例如

...
JSONObject baseJsonResponse = new JSONObject(flickrJSON);
JSONObject photos = baseJsonResponse.getJSONObject("photos");
JSONArray photo = photos.getJSONArray("photo");
...

编辑

对于您的新代码,错误是 JSON 数组中的某些 JSON 对象没有 url_s 的键

{
    "id": "30847132948",
    "owner": "140768897@N07",
    "secret": "2e224eedf8",
    "server": "1892",
    "farm": 2,
    "title": "Missouri Lawmakers Pass Computer Science...",
    "ispublic": 1,
    "isfriend": 0,
    "isfamily": 0
}

因此,如果您可以先检查 JSONObject 是否具有名为 url_s 的键,那就更好了

TL; 博士

for (int i = 0; i < photo.length(); i++) {
    JSONObject currentImage = photo.getJSONObject(i);
    if (currentImage.has("url_s")) {
    ...
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java中的JSONArray中的JSONArray

来自分类Dev

解析JsonArray中的JsonArray(嵌套)

来自分类Dev

Android中的JSONArray替代

来自分类Dev

PHP中的JSONArray解析

来自分类Dev

删除JsonArray中的值

来自分类Dev

Scala中的JsonArray

来自分类Dev

通过Java中的JSONArray

来自分类Dev

从 JSONArray 中检索数组

来自分类Dev

在 jsonarray 中获取数据

来自分类Dev

从JSONArray输出中删除引号

来自分类Dev

如何从JsonArray中获取NSDictonarys?

来自分类Dev

无法在Android中解析JSonArray

来自分类Dev

从JSONArray输出中删除引号

来自分类Dev

从Android中的JSONarray删除JSONobject

来自分类Dev

比较 ArrayList 中的 JSONArray 列表

来自分类Dev

在 JSONArray 中搜索 JSON 元素

来自分类Dev

从资产解析 RecyclerView 中的 JSONArray

来自分类Dev

Java中JSONArray中的搜索元素

来自分类Dev

Angularjs | 在JsonArray中搜索特定值

来自分类Dev

GSON中JsonArray的整数列表

来自分类Dev

如何在JAVA中对JSONArray进行排序

来自分类Dev

Java中的链接方法JSONObject / JSONArray

来自分类Dev

JSONArray中的JSONObject不太正确

来自分类Dev

如何在Java中迭代JSONArray

来自分类Dev

如何在JSP中访问JSONArray元素

来自分类Dev

如何从float [],JSONArray解析中获取数据?

来自分类Dev

在Liferay Portlet中创建JSONObject和JSONArray

来自分类Dev

删除JSONArray Java中的重复项

来自分类Dev

如何从AsyncTask的类中获取JsonArray