如何检测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
对于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");
}
因为JSONObject#getString在给定键存在的情况下返回一个值,所以根据定义它不是空的。这就是JSONObject的原因。NULL存在:表示空JSON值。
json.getString("hello").equals(JSONObject.NULL); // should be false
json.getString("bye").equals(JSONObject.NULL); // should be true
尝试使用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查询,我会得