CXF 版本 2.2.7。
json 字符串只包含不包含空值,但不包含空值属性,例如:
class Bean {String field1;String field2}
Bean bean = new Bean();
bean.setField1("value1");
编组后,结果 json 是:
{"field1":"value1"}
我希望json是:
{"field1":"value1","field2":""}
谢谢 !
据我所知,无法在 Jettison(默认 JSON 提供程序)中映射空值。但是,如果你切换到杰克逊,那么你会得到你想要的。Jackson 将 null 值映射到null。
为了实现这一点,添加以下 Maven 依赖项:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.0</version>
</dependency>
并将 org.apache.cxf.jaxrs.provider.json.JSONProvider 替换为 org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider。
结果是:
{"field1":"value1","field2":null}