当前位置: 首页 > 知识库问答 >
问题:

Android Json和空值

华烈
2023-03-14

如何检测json值何时为空?例如:[{ "用户名":null},{ "用户名":" null"}]

第一种情况表示一个不存在的用户名,第二种情况表示一个名为“null”的用户。但是如果您尝试检索它们,这两个值都会导致字符串“null”

JSONObject json = new JSONObject("{\"hello\":null}");
json.put("bye", JSONObject.NULL);
Log.e("LOG", json.toString());
Log.e("LOG", "hello="+json.getString("hello") + " is null? "
                + (json.getString("hello") == null));
Log.e("LOG", "bye="+json.getString("bye") + " is null? "
                + (json.getString("bye") == null));

日志输出是

{"hello":"null","bye":null}
hello=null is null? false
bye=null is null? false

共有3个答案

满和安
2023-03-14

对于android,如果不存在这样的映射,它将引发JSON异常。所以你不能直接调用这个方法。

json.getString("bye")

如果数据可以为空(可能不存在键),请尝试

json.optString("bye","callback string");

或者

json.optString("bye");

相反。

在演示代码中

JSONObject json = new JSONObject("{\"hello\":null}");
json.getString("hello");

你得到的是字符串“空”而不是空。

您的使用方式

if(json.isNull("hello")) {
    helloStr = null;
} else {
    helloStr = json.getString("hello");
}
梁盛
2023-03-14

因为JSONObject#getString在给定键存在的情况下返回一个值,所以根据定义它不是空的。这就是JSONObject的原因。NULL存在:表示空JSON值。

json.getString("hello").equals(JSONObject.NULL); // should be false
json.getString("bye").equals(JSONObject.NULL); // should be true
班高明
2023-03-14

尝试使用json.isNull("field-name")

参考:http://developer.android.com/reference/org/json/JSONObject.html#isNull(java.lang.String)

 类似资料:
  • 问题内容: 如何检测json值何时为空?例如: [{“ username”:null},{“ username”:“ null”}] 第一种情况表示用户名不存在,第二种情况表示用户名“ null”。但是,如果尝试检索它们,则两个值都将导致字符串“ null” 日志输出为 问题答案: 尝试一下。 参考:http : //developer.android.com/reference/org/json

  • 给定这个查询: 问题是查询只在parentDevice不为空时返回设备。为什么?如何拿回任何价值?如果我从投影中取出qdevice.parentdevice,结果是好的。 QueryDsl版本为3.2.0

  • 问题内容: 我的服务器上有一个资源,名为: 名称中有一个空格。当我在浏览器(chrome)中输入url时,会将空格转换为%20: 当我从应用程序中使用URLEncoder.encode(“ some image.png”)时,我得到: 这会导致404。正确的编码方式是什么? 问题答案: http://www.permadi.com/tutorial/urlEncoding/ 请注意,由于该字符非常

  • 空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 下面的例子用空操作功能实现了一个城市切换的功能。 我们只需要给City控制器类定义一个_empty (空操作)方法: <?php namespace app\index\controller; class City { public fu

  • 本文向大家介绍区分MySQL中的空值(null)和空字符(''),包括了区分MySQL中的空值(null)和空字符('')的使用技巧和注意事项,需要的朋友参考一下 日常开发中,一般都会涉及到数据库增删改查,那么不可避免会遇到Mysql中的NULL和空字符。 空字符('')和空值(null)表面上看都是空,其实存在一些差异: 定义: 空值(NULL)的长度是NULL,不确定占用了多少存储空间,但是占

  • 我试图创建一个用于过滤表的规范。这个表有2个manytone关系(可以为null),我想在其中应用过滤器。就像一个搜索功能。 假设此结构 还假设A和B有一个名为name的属性。 那么,我想为X做一个规范,在这里我可以在a或B的名称中匹配一个字符串。 这是我的方法: 我真的希望它能起作用,但没有。 我想要的是显示那些行,其中A的名称或B的名称是类似于输入值的。 如果我启用日志来显示SQL查询,我会得