【问题标题】:Generated JAXB object to json生成的 JAXB 对象到 json
【发布时间】:2018-02-07 03:59:05
【问题描述】:

我已经从 xsd 生成了 JAXB 类,并且我已经使用 ObjectMapper 将 JAXB 类转换为 json。但在我的 JSON 中,我想要最上面的字段名称。 ObjectFactory 类中显示的名称 @XmlElementDecl(namespace = "", name = "Foo") name i-e My Json sould 看起来像这样

{
"Foo":{
       "Foo_Inside": {
                      "FirstName":"abc",
                      "LastName","xyz"
                     },
      }
}

以下是我用来将对象转换为 json 的代码

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JaxbAnnotationModule());
String jsonString = mapper.writeValueAsString(myJaxBObject);

当我从 XSD 生成 JAXB 类时,我只创建了类,直到 Foo_Inside。我是这个概念的新手,谁能帮我生成 JSON,在我的例子中包含 TopMost 键名 i-e Foo。

【问题讨论】:

    标签: json xml jaxb objectmapper jackson-dataformat-xml


    【解决方案1】:

    好的,这将基于一个假设,因为没有提供 xsd。我相信你有一个看起来像这样的 xsd:

    <xsd:element name="Foo" type="Foo_Inside"/>
    
    <!-- and somewhere in the schema also have -->
    <xsd:complexType name="Foo_Inside">
        <xsd:sequence>
            <xsd:element name="blah" type="BlahType"/>
            <xsd:element name="blah-blah" type="BlahBlahType" />
        </xsd:sequence>
    </xsd:complexType>
    

    您需要做的是删除上面指定的两个并替换为:

    <xsd:element name="Foo">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="blah" type="BlahType"/>
                <xsd:element name="blah-blah" type="BlahBlahType" />
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    

    它会生成你想要的 Foo 类作为 @XmlRootElement

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      相关资源
      最近更新 更多