9

我有一个简单的 POJO 类,它扩展了另一个简单的 POJO 类。我正在使用将com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy这些 POJO 类中的属性编组为 JSON。但是,当我将 POJO 的某些属性设置为 时null,它会将这些属性作为字符串null输出,而不是根本不输出。

例如。

{
   Person:
   [{
      "firstName":"John"
      "lastName":"null"
    }]
}

代替:

例如。

{
   Person:
   [{
      "firstName":"John"
    }]
}
4

1 回答 1

18

ObjectMapper根据所使用的 Jackson 版本以及是否可以直接配置,可以使用不同的选项来抑制具有空值的属性的序列化。

使用 Jackson 1.1+,可以直接访问配置ObjectMapper,您只需调用setSerializationInclusion( Include.NON_NULL)。

@JsonSerialize或者,您可以使用( ) 注释具有属性的(类)类型,对于这些属性,空属性序列化将被抑制。include=Inclusion.NON_NULL

对于 Jackson 2+,使用( )代替@JsonSerialize注释。@JsonIncludeInclude.NON_NULL

于 2012-07-23T07:22:13.623 回答