JacksonProviderProxy在json输出中写出空值

Sal*_*ran 9 json jackson

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

例如.

{
   Person:
   [{
      "firstName":"John"
      "lastName":"null"
    }]
}
Run Code Online (Sandbox Code Playgroud)

代替:

例如.

{
   Person:
   [{
      "firstName":"John"
    }]
}
Run Code Online (Sandbox Code Playgroud)

Pro*_*uce 18

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

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

或者,可以注释(类)类型,其具有的属性,该空的属性序列化是将被抑制,用@JsonSerialize().include=Inclusion.NON_NULL

使用Jackson 2+,而不是@JsonSerialize注释,使用@JsonInclude(Include.NON_NULL).