为什么不是';t cxf json marshaing具有空值的字段

为什么不是';t cxf json marshaing具有空值的字段,json,cxf,Json,Cxf,cxf版本2.2.7。 json字符串仅包含非空值,但不包含空值属性,例如: class Bean {String field1;String field2} Bean bean = new Bean(); bean.setField1("value1"); marshaing之后,结果json为: {"field1":"value1"} 我希望json是: {"field1":"value1","field2":""} 谢谢 据我所知,在抛弃(默认JSON提供程序)中不可能映射空值。然

cxf版本2.2.7。
json字符串仅包含非空值,但不包含空值属性,例如:

class Bean {String field1;String field2}

Bean bean = new Bean();
bean.setField1("value1");
marshaing之后,结果json为:

{"field1":"value1"}
我希望json是:

{"field1":"value1","field2":""}

谢谢

据我所知,在抛弃(默认JSON提供程序)中不可能映射空值。然而,如果你切换到,你就会得到你想要的。Jackson将null值映射为null

为了实现这一点,请添加以下maven依赖项:

<dependency>
   <groupId>org.codehaus.jackson</groupId>
   <artifactId>jackson-jaxrs</artifactId>
   <version>1.9.0</version>
</dependency>

据我所知,在抛弃(默认JSON提供程序)中映射空值是不可能的。然而,如果你切换到,你就会得到你想要的。Jackson将null值映射为null

为了实现这一点,请添加以下maven依赖项:

<dependency>
   <groupId>org.codehaus.jackson</groupId>
   <artifactId>jackson-jaxrs</artifactId>
   <version>1.9.0</version>
</dependency>

你为什么这么想?“”与null不同。{“field1”:“value1”、“field2”:null}或{“field1”:“value1”、“field2”:“null”}可以,但我得到的是{“field1”:“value1”}CXF合并了一个JSON库。那个库有一些默认值。我使用org.apache.cxf.jaxrs.provider.JSONProvider,但找不到相关的选项:unwrapped、wrapperName、wrapperMap、dropRootElement、dropCollectionWrapperElement、ignoreMixedContent、writeXsiType、readXsiType、ignorenamespaces。你认为会这样吗?“”与null不同。{“field1”:“value1”、“field2”:null}或{“field1”:“value1”、“field2”:“null”}可以,但我得到的是{“field1”:“value1”}CXF合并了一个JSON库。那个库有一些默认值。我使用org.apache.cxf.jaxrs.provider.JSONProvider,但找不到相关选项:unwrapped、wrapperName、wrapperMap、dropRootElement、dropCollectionWrapperElement、ignoreMixedContent、writeXsiType、readXsiType、ignorenamespace