2017-02-03 94 views
-1

傑克遜JSON反序列化期間缺少關鍵的價值觀的JSONObject類在這個例子中忽略的Java

如果JSON對象有「年齡」缺失值,

String source = "{ 
    name : John; 
    age : ; 
    score: 100 
}" 

這裏的JSON可能是格式錯誤,我不確定這一點。我想忽略那些沒有值的鍵。

JSONObject object = objectMapper.readValue(source, JSONObject.class);

錯誤獲取:

com.fasterxml.jackson.databind.RuntimeJsonMappingException:在缺少值[一些行號:簡單類型,類org.json.JSONObject]值失敗的實例化](通過參考鏈:com.bial.rs.model)

注:JSONObject的是從org.json

+0

這是無效的JSON,你應該使其有效。通常,當JSON鍵沒有值時,它使用null表示,age = null –

回答

0

如果您想避免NullPointerException,則最好使用optString()方法從JSON中提取值

如果您隨時從JSON中提取數據,則可能會在特定的Key值那個時候,而不是實現空條件,更好地利用這個優化的方法optString(「年齡」)它將返回null,並不拋出JSONException