JacksonProviderProxy在json输出中写出空值

时间:2012-07-23 05:29:56

标签: json jackson

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

例如。

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

而不是:

例如。

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

1 个答案:

答案 0 :(得分:18)

可以使用不同的选项来抑制具有空值的属性的序列化,具体取决于正在使用的Jackson版本,以及是否可以直接配置ObjectMapper

使用Jackson 1.1+,可直接配置ObjectMapper,您只需拨打setSerializationInclusionInclude.NON_NULL)。

或者,您可以使用@JsonSerializeinclude = Inclusion.NON_NULL注释具有属性的(类)类型,以便为其抑制空属性序列化。 )。

使用Jackson 2+而不是@JsonSerialize注释,使用@JsonIncludeInclude.NON_NULL)。