我们正在使用JaxRS&杰克逊将数据发送给我们的客户.由于客户端是
Javascript,如果没有该属性的有效值(默认情况下JaxRS默认),我们实际上不需要发送空值或空数组.有没有解决的办法?
一个例子. JaxRS发送此信息:
{ “PROP1”:[],“PROP2”:NULL,“prop3”: “foo” 的}
我们可以在哪里得到
{ “prop3”: “富”}
解决方法
有多种方法可以实现这一目标,具体取决于:注释@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)是一种方法.或者,因为您还想删除空列表,数组,所以将NON_NULL更改为NON_EMPTY.
也可以将其配置为默认行为;在杰克逊1.9:
mapper.setSerializationConfig(mapper.getSerializationConfig().withSerializationInclusion( JsonSerialize.Inclusion.NON_EMPTY));
在Jackson 2.0中,有点简单:
mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY);