我只想了解SerializationFeature.WRAP_ROOT_VALUE的用途。 我实际上已经尝试禁用SerializationFeature.WRAP_ROOT_VALUE,对于我用xmlRootElement注释的类。在这种情况下,在禁用SerializationFeature.WRAP_ROOT_VALUE后,仍然在序列化后仍获得根值。为了避免产生根值,我必须使用xmlType。 因此,尝试了解SerializationFeature.WRAP_ROOT_VALUE的用途是什么?
我尝试过的示例代码
@XmlRootElement(name="person")
Public class Person {
@XmlElement(name = "insert")
private int insert;
@XmlElement(name = "update")
private int update;
}
上面是我试图序列化的POJO类,我也使用过
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
因此,使用上面的代码,输出为
"person" {
"insert" : 1,
"update" : 0
}
在同一情况下,如果我尝试在Person类中将xmlRootElement更改为XmlType,则输出为
{
"insert" : 1,
"update" : 0
}
所以我很困惑,如果未提供预期的输出,那么SerializationFeature.WRAP_ROOT_VALUE的用途是什么? 我正在使用杰克逊版本的2.9.6
答案 0 :(得分:0)
深入研究之后发现,借助CXF,我可以通过在applicationcontext.xml文件中添加小的配置来解决此问题
<bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
<property name="dropRootElement" value="true" />
</bean>