AndroidJson和NULL值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (8)

如何检测json值何时为空?例如:[{"username":null},{"username":"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
提问于
用户回答回答于

因为如果给定的键存在,JSONObject#getString返回一个值,因此定义它不是NULL。这就是JSONObject.NULL存在的原因:表示空JSON值。

json.getString("hello").equals(JSONObject.NULL); // should be false
json.getString("bye").equals(JSONObject.NULL); // should be true

扫码关注云+社区