【问题标题】:Jackson Map Null Json to ListJackson 将 Null Json 映射到列表
【发布时间】:2018-04-05 09:46:30
【问题描述】:

我已搜索并找到 Jackson ObjectMapper throwing NullPointerException even with NON_NULL,但我无法控制该类来更改我的设置器。

我被给予了

{... "fieldNames": null,...}

并且应该将其反序列化为

Collection<String> fieldNames

我无法控制类或我得到的 json。

我可以使用一些设置来处理这个吗?我看过DeserializationFeature,但没找到

【问题讨论】:

    标签: json groovy jackson


    【解决方案1】:

    当您不控制要反序列化的类时,您可以使用混入。您没有提及包含Collection&lt;String&gt; fieldNames 的类的名称,因此假设它称为Fields。然后新建一个类:

    class FieldsMixin {
        @JsonSetter(nulls = Nulls.SKIP)
        Collection<String> fieldNames;
    }
    

    并将 mixin 类添加到您的 ObjectMapper 中,将其与原始未修改的类相关联:

    mapper.addMixIn(Fields.class, FieldsMixin.class);
    

    这是 Jackson 2.9 中的一项新功能,正如您猜测的那样,如果 JSON 中的值为 null,它将跳过调用 setter 方法或以其他方式设置字段。 Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2021-01-31
      • 2020-12-20
      相关资源
      最近更新 更多