如何处理 Volley StringRequest 中的空值

2024-06-28

我有一个返回 2 组不同值的响应。在每种情况下,都会有一个值always为空,另一个将为空always包含一个值。问题是 Volley 不允许我分配 null JSON 值或在 if 语句中检查 JSON 值。它只是指 catch 块。我正在尝试做类似的事情:

StringRequest request = new StringRequest(Request.Method.POST, "url", new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            try {
                JSONObject obj = new JSONObject(response);
                //If this is null, it stops here and goes to catch.
                String value1 = obj.getString("value1") 
                String value2 = obj.getString("value2");

                //Can't perform any more code because Value1 is null

            } catch (JSONException e) {
                Log.d("Log","Your String was null");

            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Log", "Unable to connect to server!");
        }
    });

我不能使用throws由于库的设计方式,它迫使我将其放入 try/catch 中。到底有没有这方面的事情呢?

EDIT:以下是我得到的异常:

org.json.JSONException: value1 没有值


您是否尝试过使用.isNull("键") http://www.json.org/javadoc/org/json/JSONObject.html#isNull%28java.lang.String%29JSONObject 上的方法?

然后你可以做这样的事情:

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

如何处理 Volley StringRequest 中的空值 的相关文章

随机推荐

  • 如何为 3.x 到 2.x IPC 设置 Python 多处理 pickle 协议

    我正在尝试在同一台机器上的两个 Python 进程 Py2 中的侦听器和 Py3 中的客户端 之间建立真正基本的字符串消息 IPC 不需要对象或任何类似的东西 这不能开箱即用 因为 Py3 MP 默认使用 Pickle 协议 3 而 Py2
  • 如何在使用 Apache 2 的 Windows 上忽略 Perl shebang?

    我已经在我的 Windows 机器上设置了本地 Perl Web 环境 我正在开发的应用程序最初来自 Linux 服务器 因此源代码的 shebang pl文件看起来像这样 usr bin perl 这会导致我的 Windows 开发机器上
  • 有条件的正则表达式替换

    使用Python 您可以在替换文本之前检查组是否为空 Example user John Marshal gt user br strong Jonh Marshal strong John Marshal gt strong Jonh M
  • tkinter.mainloop 函数的 n 参数是什么?

    A n参数可以被赋予tkinter mainloop功能 help tkinter Tk mainloop gt gt gt gt mainloop self n 0 What is n here Call the mainloop of
  • 无法打开项目...无法打开,因为无法解析项目文件

    我已经工作了一段时间来创建 iPhone 应用程序 今天 当我的电池电量不足时 我正在工作并不断保存我的源文件 然后电源就断了 现在 当我重新插入计算机并且电源正常时 我尝试打开我的项目文件 但出现错误 无法打开项目 项目 无法打开 因为无
  • Cython、CMake和setup.py、python在一个子目录下编译两次

    我正在尝试按照以下结构与 Cython 绑定一起构建 C 库https bloerg net 2012 11 10 cmake and distutils html https bloerg net 2012 11 10 cmake and
  • 在 BASH 中按字节读取文件

    我需要读取指定文件的第一个字节 然后读取第二个字节 第三个字节 依此类推 我怎样才能在 BASH 上做到这一点 P S 我需要获取这个字节的十六进制 完全重写 2019 年 9 月 比以前的版本更短更简单 速度更快 但没那么快 Yes ba
  • Numpy 矩阵到 tkinter 画布

    如何将 Numpy 矩阵作为位图显示到 Tkinter 画布中 更准确地说 如何填写PhotoImage来自矩阵的内容 photo ImageTk PhotoImage self canvas create image 0 0 image
  • 改变了 (un)serialize() 的行为?

    编辑 问题是现在已记录的 php 错误 https bugs php net bug php id 71617 https bugs php net bug php id 71617感谢您找到那个 Danack 我刚刚将应用程序从 PHPH
  • Shapeless 中 TypeClass 特征的 emptyCoproduct 和 coproduct 方法的用途是什么

    我并不完全清楚这样做的目的是什么emptyCoProduct and coproduct的方法TypeClass无形中的特质 什么时候会使用TypeClass特质而不是ProductTypeClass 这两种方法的实施方式有哪些示例 假设我
  • 使用php从图像中获取第一个像素

    我正在尝试获取图像的第一个像素 最好是最左上角或最右上角的一个像素 我看到了这个问题 它有最接近我的问题的答案 获取图像颜色 https stackoverflow com questions 1746530 get image color
  • 在 AngularJs 中设置动态作用域变量 -scope.

    我有一根绳子 是从routeParam或指令属性或其他什么 我想基于此在范围上创建一个变量 所以 scope
  • 如何使用Caliper进行基准测试?

    我试图弄清楚如何使用 Caliper 在 Eclipse 中进行基准测试 但一无所获 我尝试按照此处找到的 26 分钟教程进行操作 https code google com p caliper https code google com
  • 表示区间或范围? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 一般来说 每当您表示任何类型的范围时 您都可以选择为范围的开始和结束选择哪些类型的值 例如 如果您想要一个包含整数 1 2 3 4 5 的范围
  • 如何读取Flask函数中隐藏的表单数据[重复]

    这个问题在这里已经有答案了 我正在为 Flask 应用程序做一个作业 该应用程序的函数根据 index html 页面上表单中隐藏字段的值执行不同的操作 我只有两条路线 index html 和 process 对index html执行操
  • 如何使用javascript将div从左向右移动

    I have div named movingImage每次单击按钮时我都想向右移动 50px 这是我的 JavaScript function moving Image document getElementById movingImag
  • 为什么 Xcode 会在钥匙串中自动安装(重复且过期的)证书? [复制]

    这个问题在这里已经有答案了 可能的重复 xCode 4 重新安装我删除的钥匙串证书 https stackoverflow com questions 5264481 xcode 4 reinstalls keychain certs th
  • MATLAB:检测并删除 2 列矩阵中的镜像对

    我有一个矩阵 1 2 3 6 7 1 2 1 并想删除镜像对 即输出将是 1 2 3 6 7 1 or 3 6 7 1 2 1 有没有一种简单的方法可以做到这一点 我可以想象一个复杂的 for 循环 例如 或不会删除原始对的版本 仅删除重复
  • swift - 仅在落地时跳跃

    我希望限制我的角色 猫 使其仅在地面 虚拟 SKNode 或树上 treeP SKNode 时跳跃 目前我没有任何限制touchesBegan因此 如果用户快速连续点击 猫就能够在空中飞翔 虽然这在其他游戏中可能很有用 但在这里不受欢迎 如
  • 如何处理 Volley StringRequest 中的空值

    我有一个返回 2 组不同值的响应 在每种情况下 都会有一个值always为空 另一个将为空always包含一个值 问题是 Volley 不允许我分配 null JSON 值或在 if 语句中检查 JSON 值 它只是指 catch 块 我正