【问题标题】:how to check whether jsonobject contains boolean or null value?如何检查 jsonobject 是否包含布尔值或空值?
【发布时间】:2011-02-22 05:51:39
【问题描述】:

我正在研究 json 解析器。在json响应中一些值包含布尔值或空值,那么如何检查它是布尔值还是空值?例如:user=false 或 user=null。在解析时,它给出了“用户不是 jsonobject”的异常。

JSONObject json = new JSONObject(query);
JSONObject info = json.getJSONObject("info");
JSONObject user = info.getJSONObject("user");

谢谢, 维沙哈。

【问题讨论】:

    标签: android json


    【解决方案1】:

    你试过ingo.optBoolean("user")吗?

    来自 optBoolean 的 SDK 文档: 返回按名称映射的值(如果存在并且是布尔值或可以强制为布尔值)。否则返回 false。

    请注意,在此示例中,null 将被视为 false 值。

    【讨论】:

    • 我试过这个方法,但我的应用程序仍然崩溃。如果有任何其他方法可以检查它是空还是假?请帮帮我。
    • “用户”是否可能不是 JSON?你能粘贴实际的 JSON 字符串吗?
    【解决方案2】:

    isNull()你可以使用if(json.isNull("user")||your conditions)

    【讨论】:

      【解决方案3】:

      我认为问题可能在于您试图使用 getJSONObject() 获取 JSONArray。试试 json.getJSONArray("info")。我遇到了与我尝试做的相同的问题 if(object.getJSONObject("string") == null) 但在尝试让对象检查其值时抛出异常,并且 .optBoolean 完美运行

      【讨论】:

        【解决方案4】:
        JSONObject json = new JSONObject(data); 
        String user = json.getString("user");
        variable.setUser(courses_icon_file_name == null ? "": user);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-02
          • 2021-12-14
          • 2023-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多