【问题标题】:Jackson use JsonSerialize.Inclusion.NON_NULL except for one class杰克逊使用 JsonSerialize.Inclusion.NON_NULL 除了一类
【发布时间】:2012-08-23 03:31:54
【问题描述】:

我通常使用 objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL) 因为我从不希望我的类的 null 值被序列化。除了现在我有一个特定的字段应该被写出来,即使它是空的。我可以在这个字段上添加一个快速注释来覆盖该字段的 Inclusion.NON_NULL 属性吗?有什么好的方法可以做到这一点?

【问题讨论】:

    标签: jackson


    【解决方案1】:

    对于 Jackson 1.x,您可以使用 @JsonSerialize(include = Inclusion.ALWAYS),对于 Jackson 2.x,您可以使用 @JsonInclude(Include.ALWAYS)。这些注释将覆盖您 ObjectMapper 中的默认配置。

    【讨论】:

    • 能否请您提及Jackson 2.x jar 名称和@JsonSerialize 包。
    • Jackson 1.x 的东西在 org.codehaus.jackson 包下,2.x 在 com.fasterxml.jackson 下
    【解决方案2】:

    @user1433372,JsonInclude 是仅适用于 Jackson 2.x 的注释。

    在杰克逊 1.9 中

    @JsonSerialize(include=JsonSerialize.Inclusion.NON_EMPTY)
    

    在 Jackson 2.x 中与

    相同
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    

    【讨论】:

    • JSON 2.97 = com.fasterxml.jackson 2.9.7?
    【解决方案3】:

    使用 Jackson 1.9 @JsonSerialize(include= JsonSerialize.Inclusion.ALWAYS)

    @JsonSerialize(include=Include.ALWAYS) 没有编译。

    【讨论】:

    • @JsonSerialize(include= JsonSerialize.Inclusion.ALWAYS) 不适合我!
    猜你喜欢
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多