1

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":""}

谢谢 !

4

1 回答 1

1

据我所知,无法在 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}
于 2013-09-08T18:26:25.997 回答