代码之家  ›  专栏  ›  技术社区  ›  akash prasad

在xmlRootElement之前使用SerializationFeature.WRAP_ROOT_值

  •  0
  • akash prasad  · 技术社区  · 7 年前

    我只是想了解SerializationFeature.WRAP\u ROOT\u值的用途。 实际上,我已经尝试禁用SerializationFeature.WRAP_ROOT_值,并为我用xmlRootElement注释的类禁用了该值。在本例中,在禁用SerializationFeature.WRAP_ROOT_值之后,仍然在序列化之后,我将获得根值。为了避免根值,我必须使用xmlType。 那么,试图理解SerializationFeature.WRAP\u ROOT\u值的用途是什么?

    我尝试过的示例代码

    @XmlRootElement(name="person")
    Public class Person {
    @XmlElement(name = "insert")
        private int insert;
    
        @XmlElement(name = "update")
        private int update;
    }
    

     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\u ROOT\u值没有给出预期的输出,它有什么用? 我使用的是杰克逊版本的2.9.6

    1 回复  |  直到 7 年前
        1
  •  0
  •   akash prasad    7 年前

     <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
        <property name="dropRootElement" value="true" />
     </bean>
    
    推荐文章