Right there in the documentation, in the first paragraph:
Values may not be null
, NaN
s, infinities, or of any type not listed here.
So yes, it is "...something that null
values are not included..." (edit: that was a quote from your original question; your updated question changes it to "uninitialized values" but the default value of an object reference is null
, so...)
It's a "feature" of that class, though; JSON itself understands null
just fine. Further down in the documentation it says you use a "sentinal value," NULL
, to represent null
. Which seems...odd. There's a note about it:
Warning: this class represents null
in two incompatible ways: the standard Java null
reference, and the sentinel value NULL
. In particular, calling put(name, null)
removes the named entry from the object but put(name, JSONObject.NULL)
stores an entry whose value is JSONObject.NULL
.
So:
params.put(KEY_TOKEN, token == null ? JSONObject.NULL : token);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…