Java - исключение JSON Null - PullRequest
9 голосов
/ 16 марта 2010

Я использую JSON для десериализации входной строки, которая содержит значение 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)

Спасибо.

1 Ответ

7 голосов
/ 16 марта 2010

Для меня это работает с 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, в то время как Java null эквивалентно значению, которое JavaScript вызывает undefined.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...