I'm using JSON to deserialize an input string that contains a null
value for certain hashmap property. Does anyone have any clue why this exception occurs ? Is it possible that null
is not accepted as a value Is this configurable somehow ?
input sample:
{"prop1":"val1", "prop2":123, "prop3":null}
stacktrace:
net.sf.json.JSONException: null object
at net.sf.json.JSONObject.verifyIsNull(JSONObject.java:2856)
at net.sf.json.JSONObject.isEmpty(JSONObject.java:2212)
Thanks.
JSON has a special value called null which can be set on any type of data including arrays, objects, number and boolean types.
In JSON Schema, an empty object is a completely valid schema that will accept any valid JSON. You can also use true in place of the empty object to represent a schema that matches anything, or false for a schema that matches nothing.
For me this works with json-lib-2.3-jdk15:
String json = "{\"prop1\":\"val1\", \"prop2\":123, \"prop3\":null}";
JSONObject jsonObject = JSONObject.fromObject(json);
HashMap<String, Object> map = (HashMap<String, Object>) JSONObject.toBean(jsonObject, HashMap.class);
Actually the null
value becomes an instance of JSONNull
.
JSONNull
is equivalent to the value that JavaScript callsnull
, whilst Java'snull
is equivalent to the value that JavaScript callsundefined
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With