Jackson no puede considerar @XmlElement mientras serializa a JSON
Tengo una clase de contrato que contiene elementos con las etiquetas @XmlElement. Por ej.
@XmlElement(name = "balancemoney")
protected Amount balanceMoney;
Al usar JAXBContext, puedo generar el xml con las etiquetas adecuadas.
Sin embargo, cuando uso la biblioteca provista por jackson, la etiqueta JSON aún aparece como 'balanceMoney' en lugar de 'balancemoney'
¿Cómo le digo a Jackson que considere la etiqueta @XmlElement?
A continuación se muestra el código que hace esto.
//Function to display request object.
public void displayXML(Object reqResp){
try{
JAXBContext jaxbContext = JAXBContext.newInstance(reqResp.getClass());
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
ByteArrayOutputStream bStream=new ByteArrayOutputStream();
//jaxbMarshaller.marshal(reqResp, System.out);
jaxbMarshaller.marshal(reqResp,bStream );
logger.info(bStream.toString());
}catch(JAXBException e){
logger.info(e.getMessage());
}
logger.info("*** Payload is: " + reqResp.toString());
}
//Function to display as JSON
public void displayJSON(Object reqResp) throws JsonGenerationException, JsonMappingException, IOException{
ObjectMapper mapper = new ObjectMapper();
logger.info(mapper.defaultPrettyPrintingWriter().writeValueAsString(reqResp));
}