2017-02-03 55 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