java - Why JsonNull in GSON? -
the docs jsonobject#get method returns null if no such member exists. that's not accurate; jsonnull
object returned instead of null
.
what idiom checking whether particular field exists in gson? wish avoid clunky style:
jsonelement = jsonobject.get("optional_field"); if (jsonelement != null && !jsonelement.isjsonnull()) { s = jsonelement .getasstring(); }
why did gson use jsonnull
instead of null
?
there answer what differences between null
, jsonnull
. in question above, i'm looking reasons why.
gson, presumably, wanted model difference between absence of value , presence of json value null
in json. example, there's difference between these 2 json snippets
{} {"key":null}
your application might consider them same, json format doesn't.
calling
jsonobject jsonobject = new jsonobject(); // {} jsonobject.get("key");
returns java value null
because no member exists name.
calling
jsonobject jsonobject = new jsonobject(); jsonobject.add("key", jsonnull.instance /* or null */); // {"key":null} jsonobject.get("key");
returns instance of type jsonnull
(the singleton referenced jsonnull.instance
) because member exist name , value json null, represented jsonnull
value.
Comments
Post a Comment