【问题标题】:Ignore missing values of key during jackson json deserialize to JSONObject class in java在jackson json反序列化为java中的JSONObject类期间忽略键的缺失值
【发布时间】:2017-02-03 12:54:54
【问题描述】:

在示例中

如果 json 对象缺少 'age' 的值,

 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

【问题讨论】:

  • 这是无效的 JSON,你应该让它有效。通常当 JSON 键没有值时,它用 null 表示,age = null

标签: java json jackson


【解决方案1】:

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

如果您随时从 JSON 中获取数据,您可能会有特定 Key 值的 null 数据,此时与其实现 Null 条件,不如利用这个优化的方法 optString("age") 它会返回 null 并且不抛出 JSONException

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 2012-02-08
    • 2015-09-04
    • 2014-06-13
    • 2022-01-01
    • 2013-08-17
    • 1970-01-01
    相关资源
    最近更新 更多