Android Json 和 null 值

2022-08-31 10:30:40

如何检测 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

答案 1

答案 2

由于 JSONObject#getString 在给定键存在时返回一个值,因此根据定义,它不是 null。这就是 JSONObject.NULL 存在的原因:表示空 JSON 值。

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