2010-03-16 5 views
7

Używam JSON do deserializacji łańcucha wejściowego, który zawiera wartość null dla niektórych właściwości hashmap. Czy ktokolwiek ma jakąkolwiek wskazówkę, dlaczego występuje ten wyjątek? Czy to możliwe, że null nie jest akceptowane jako wartość Czy to w jakiś sposób można skonfigurować?Java - wyjątek JSON Null

próbki wejściowe:

{"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) 

Dzięki.

Odpowiedz

6

Dla mnie to działa z 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); 

Właściwie wartość null staje się instancją JSONNull.

JSONNull jest równoważna wartości, która wymaga JavaScript null, natomiast Java null jest równoważna wartości, które JavaScript wywołuje undefined.

+0

Dzięki za odpowiedź. – thelost