在Android开发者JSONObject引用页面中,sentinel值NULL意味着什么

在Android开发者JSONObject引用页面中,sentinel值NULL意味着什么,android,json,null,sentinel,Android,Json,Null,Sentinel,为方便起见,此处引用的sentinel值NULL是什么意思: 警告:此类以两种不兼容的方式表示null:标准Java null引用和sentinel值null。特别是,调用put(name,null)会从对象中删除命名条目,但put(name,JSONObject.null)会存储一个值为JSONObject.null的条目。 更新 我在网上只能找到。这意味着Json对象中的标准Javanull值会导致忽略它们,并且不会出现在输出中。这样做是为了压缩输出。其中,sentinelJSONObje

为方便起见,此处引用的sentinel值NULL是什么意思:

警告:此类以两种不兼容的方式表示null:标准Java null引用和sentinel值null。特别是,调用put(name,null)会从对象中删除命名条目,但put(name,JSONObject.null)会存储一个值为JSONObject.null的条目。


更新
我在网上只能找到。

这意味着Json对象中的标准Java
null
值会导致忽略它们,并且不会出现在输出中。这样做是为了压缩输出。其中,sentinel
JSONObject.NULL
将在输出字符串中添加NULL

举个例子会让你明白

JSONObject jObject = new JSONObject();
jObject.put("First Name", null);
jObject.put("Last Name", JSONObject.NULL);
//Print jObject
Log.d("JSON OBJECT", jObject.toString());
这将给出如下输出

{"Last Name":null}

这意味着Json对象中的标准Java
null
值会导致忽略它们,并且不会出现在输出中。这样做是为了压缩输出。其中,sentinel
JSONObject.NULL
将在输出字符串中添加NULL

举个例子会让你明白

JSONObject jObject = new JSONObject();
jObject.put("First Name", null);
jObject.put("Last Name", JSONObject.NULL);
//Print jObject
Log.d("JSON OBJECT", jObject.toString());
这将给出如下输出

{"Last Name":null}

“哨兵”这个词是一个比喻,谢谢你:D@congliu没错;)“哨兵”这个词是一个比喻,谢谢你:D@congliu没错;)