He generado clases JAXB desde xsd y tengoconvirtió la clase JAXB a json usando ObjectMapper. Pero en mi JSON quería el nombre de campo superior. El nombre que se muestra en la clase de ObjectFactory @XmlElementDecl (namespace = "", name = "Foo") name i-e My Json debería tener este aspecto
{
"Foo":{
"Foo_Inside": {
"FirstName":"abc",
"LastName","xyz"
},
}
}
Abajo está el código que estoy usando para convertir el objeto a json
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JaxbAnnotationModule());
String jsonString = mapper.writeValueAsString(myJaxBObject);
Cuando he generado el ajedrez JAXB desde XSD Iacaba de tener clases creadas hasta Foo_Inside. Soy nuevo en este concepto, ¿alguien puede ayudarme a generar JSON que incluya el nombre de clave TopMost i-e Foo en mi caso?
Respuestas
0 para la respuesta № 1Ok, esto se basará en un supuesto porque no se proporciona xsd. Creo que tienes un xsd que se parece a esto:
<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>
Lo que debe hacer es eliminar los dos especificados anteriormente y reemplazarlos con:
<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>
Generará tu clase de Foo como querías como @XmlRootElement