在 Android 中使用 Volley 解析 JSON 数据

2024-03-26

我尝试解析来自“的 JSON 数据https://api.instagram.com/v1/media/popular?client_id= https://api.instagram.com/v1/media/popular?client_id=” + 客户端ID;或任何其他网址,以多种不同的方式!使用了几个 JSONParsers、教程、阅读器……一切,但仍然无法从这些 url 中获取任何内容。现在我正在使用 Volley 库,但仍然无法让它工作,这是我的代码和你需要的一切,如果有人有任何想法,请分享。

public  void LoadPictures()   {
    mRequestQueue =  Volley.newRequestQueue(this);
    mRequestQueue.add(new JsonObjectRequest(urlInst, null,
            new Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        parseJSON(response);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }, new ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    }));

这是我的 parseJSON 方法:

 private  void parseJSON(JSONObject json) throws JSONException{      
     // JSONObject value = json.getJSONObject("value");
 JSONArray items = json.getJSONArray("data");
 for(int i=0;i<items.length();i++) {
     JSONObject c=(JSONObject) items.get(i);
         JSONObject user = c.getJSONObject("user");
     String name= user.getString("username");
     JSONObject img=c.getJSONObject("images");
         JSONObject thum=img.getJSONObject("thumbnail");
         String urlOfPic = thum.getString("url");  
         PhotoInst photoData=new PhotoInst (i, urlOfPic, name);
         photos.add(photoData);
     }

这是我应该得到的 JSON 数据:

 "data": [{
    "type": "image",
    "users_in_photo": [],
    "filter": "Gotham",
    "tags": [],
    "comments": { ... },
    "caption": {
        "created_time": "1296656006",
        "text": "ãã¼ãâ¥ã¢ããªå§ãã¦ä½¿ã£ã¦ã¿ãã(^^)",
        "from": {
            "username": "cocomiin",
            "full_name": "",
            "type": "user",
            "id": "1127272"
        },
        "id": "26329105"
    },
    "likes": {
        "count": 35,
        "data": [{
            "username": "mikeyk",
            "full_name": "Kevin S",
            "id": "4",
            "profile_picture": "..."
        }, {...subset of likers...}]
    },
    "link": "http://instagr.am/p/BV5v_/",
    "user": {
        "username": "cocomiin",
        "full_name": "Cocomiin",
        "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1127272_75sq_1296145633.jpg",
        "id": "1127272"
    },
    "created_time": "1296655883",
    "images": {
        "low_resolution": {
            "url": "http://distillery.s3.amazonaws.com/media/2011/02/01/34d027f155204a1f98dde38649a752ad_6.jpg",
            "width": 306,
            "height": 306
        },
        "thumbnail": {
            "url": "http://distillery.s3.amazonaws.com/media/2011/02/01/34d027f155204a1f98dde38649a752ad_5.jpg",
            "width": 150,
            "height": 150
        },
        "standard_resolution": {
            "url": "http://distillery.s3.amazonaws.com/media/2011/02/01/34d027f155204a1f98dde38649a752ad_7.jpg",
            "width": 612,
            "height": 612
        }
    },
    "id": "22518783",
    "location": null
},

当我尝试放置随机 Toast 来查看问题出在哪里时,我可以看到方法 LoadPictures 中的 onResponse 根本没有被调用?我哪里失败了?我只是在监督一些小事还是其他事情?


@Mate - 从你的json中可以看出,你得到了一个JsonArray,即“数据”。因此,将您的监听器更改为 ListenerJSONArray> 这确保它返回一个 JSONArray 对象。因此,您的响应现在将变成,

@Override
public void onResponse(JSONArray response) {
try {
         parseJSON(response);
    } catch (JSONException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
    }
}

让我知道这个是否奏效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中使用 Volley 解析 JSON 数据 的相关文章

  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 如何默认在 ActionOpenDocument 意图中显示“内部存储”选项

    我需要用户选择一个自定义文件类型的文件 并将其从 Windows 文件资源管理器拖到 Android 设备上 但默认情况下内部存储选项不可用 当我使用以下命令启动意图时 var libraryIntent new Intent Intent
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • 错误:在根项目“projectName”中找不到项目“app”

    我有一个在 Eclipse 中开发的旧应用程序 现在尝试将其迁移到 Android Studio 我更新了库并遵循了基本步骤 现在 我收到此错误 Error Project app not found in root project pro
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • R - 根据多个条件匹配来自 2 个数据帧的值(当查找 ID 的顺序是随机时)

    嗨我有两个数据框 df1 data frame PersonId1 c 1 2 3 4 5 6 7 8 9 10 1 PersonId2 c 11 12 13 14 15 16 17 18 19 20 11 Played together
  • 每条路由的 NancyFx 身份验证

    从我在源代码中看到的 RequiresAuthentication 对整个模块进行身份验证检查 有什么办法可以按路线执行此操作吗 我有同样的问题 然而事实证明RequiresAuthentication在模块级别和路由级别都有效 为了演示
  • CollapsingToolBarLayout 无法实例化

    在过去的几个月里 我一直在使用折叠工具栏布局 没有任何问题 然而今天 每当我打开 xml 文件时都会弹出此错误 确切的错误如下 以下类无法实例化 android support design widget CollapsingToolbar
  • Angular 通用 - 为客户端缓存的服务器端请求

    我看过很多关于在角度通用应用程序中缓存客户端数据的文章 因此它不会重复客户端上已在服务器上解析的请求 我只是不明白数据如何从服务器传输到客户端 我是否将 JSON 注入到预渲染的 HTML 中 还是缺少其他内容 从 Angular 5 开始
  • 如何获取已安装打印机的列表?

    我正在寻找获取已安装打印机列表的可能性 我在 Windows 操作系统中使用 JDK 1 6 有谁知道解决方案吗 先感谢您 只是想添加一个小片段 import javax print class Test public static voi
  • Xcode 4 - 一键构建多个设备?

    在 Xcode 4 中 是否可以通过某种方式进行设置 以便通过单击左上角的 运行 按钮 可以一键将 Xcode 构建到多个设备 这会节省很多时间 不断地点击 构建到iPhone 然后构建到 iPod 然后依次点击 构建到iPad 一键完成所
  • 等待 puppeteer 中的过渡结束

    我正在尝试使用 Puppeteer 测试网站 不幸的是 我在单击工具栏中的元素时遇到问题 工具栏使用 CSS 过渡来优雅地滑入页面 我的代码失败 因为我在页面仍在动画时单击元素将出现的位置 我使用超时作为解决方法 但必须有一个更优雅的解决方
  • 如何选择字段总和大于 MongoDB 中的值的位置

    使用 MongoDB 我将如何编写这个常规 SQL 语句 SELECT FROM table WHERE field1 field2 field3 gt 1 我一直在搞乱 group project add 等 我觉得我在围绕解决方案跳舞
  • 如何额外保护已使用 OAuth 2.0 访问令牌的 REST 服务?

    我有以下 REST 服务 An 聚合器暴露于外界的服务 它由用户 OAuth 2 0 访问令牌保护 这聚合器称为Internal服务 The Internal服务是在网络级别的not暴露于外界 它还由同一用户 OAuth 2 0 访问令牌保
  • 如何在 Delphi 中检测等宽字体?

    如何在 Delphi 中检测等宽字体 TFont Pitch应该fpFixed我想 但它对我来说不适用于 Delphi XE4 var Font TFont begin Font TFont Create Font Name Courier
  • Android 上的“上下文”是什么?

    在Android编程中 到底什么是Context类以及它的用途是什么 我在开发者网站 https d android com reference android content Context 但我无法清楚地理解它 简单来说 顾名思义 它是
  • Hibernate/JPA DB 架构生成最佳实践

    我只是想听听 Hibernate 专家关于基于 Hibernate JPA 的项目的数据库模式生成最佳实践的意见 尤其 项目刚开始时采用什么策略 是否建议让 Hibernate 在这个阶段自动生成架构 还是从项目的最早阶段手动创建数据库表更
  • 如何限制flatMap的并发数?

    我正在尝试使用 RxJS 编写一个脚本来处理数百个日志文件 每个日志文件大约 1GB 脚本的骨架看起来像 Rx Observable from arrayOfLogFilePath flatMap function logFilePath
  • matlab imagesc 背景颜色

    我正在使用最新版本的 matlab 我正在使用 imagesc 命令和 jet 颜色图绘制矩阵 矩阵的背景值为零 并在图像中绘制为颜色条上最低的颜色 即深蓝色 有没有办法使背景零值绘制为白色 Thanks j jet j 1 1 1 1 c
  • 从 AppDelegate 调用重新加载部分

    我正在构建一个应用程序来跟踪 BLE 设备 并且我有一个委托 在 appDelegate 中 来更新通过蓝牙发现的设备列表 我需要在表视图中显示这些设备 因此当我发现一个设备时 我会调用视图控制器中的一个函数来刷新表视图 如果我从 View
  • 根据文件扩展名打开语句

    我需要处理目录中的两种类型的文件 txt and gz 为此目的有两种类型的公开声明 gz files with gzip open file name rt encoding utf 8 as f line next f while li
  • e2e 测试 Angular UI 网格的规范方法

    故事 最近 我们的 UI 从自定义表格切换为角度 UI 网格 http ui grid info 随着它变得稳定且功能丰富 主 Angular UI 网格页面声称具有 e2e 测试集成 但我们很难让这项工作成功 据我们了解 e2e测试集成
  • 在Python中换行长行[重复]

    这个问题在这里已经有答案了 如何在 Python 中换行而不牺牲缩进 例如 def fun print 0 Here is a really long sentence with 1 format 3 5 假设这超出了建议的 79 个字符限
  • 以编程方式检测硬件呼叫/挂断键的存在

    我的一位客户想要一种返回布尔值的代码方法 如果 Android 手机有硬件红 绿呼叫 挂机键 则为 true 如果没有 则为 false 像这样的东西 public void keyFeedbackFromInput KeyEvent ev
  • 在 Android 中使用 Volley 解析 JSON 数据

    我尝试解析来自 的 JSON 数据https api instagram com v1 media popular client id https api instagram com v1 media popular client id 客