Я использую JSON для десериализации входной строки, которая содержит a null
значение для определенного hashmap свойства. У кого-либо есть какая-либо подсказка, почему это исключение происходит? Действительно ли это возможно это null
не принят, поскольку значение - это настраивающееся так или иначе?
входной образец:
{"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)
Спасибо.
Для меня это работает с 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);
Фактически значение null
становится экземпляром JSONNull
.
JSONNull
эквивалентно значению, которое JavaScript вызываетnull
, в то время как Javanull
эквивалентно значению, которое JavaScript вызываетundefined
.