我有一个简单的POJO类,它扩展了另一个简单的POJO类。我正在使用com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy
将这些POJO类中的属性编组为JSON。但是,当我将某些属性设置为POJO null
时,它会将这些属性输出为字符串null
,而不是根本不输出它。
例如。
{
Person:
[{
"firstName":"John"
"lastName":"null"
}]
}
而不是:
例如。
{
Person:
[{
"firstName":"John"
}]
}
答案 0 :(得分:18)
可以使用不同的选项来抑制具有空值的属性的序列化,具体取决于正在使用的Jackson版本,以及是否可以直接配置ObjectMapper
。
使用Jackson 1.1+,可直接配置ObjectMapper
,您只需拨打setSerializationInclusion
(Include.NON_NULL
)。
或者,您可以使用@JsonSerialize
(include
=
Inclusion.NON_NULL
注释具有属性的(类)类型,以便为其抑制空属性序列化。 )。
使用Jackson 2+而不是@JsonSerialize
注释,使用@JsonInclude
(Include.NON_NULL
)。