Jackson kann @XmlElement bei der Serialisierung auf JSON nicht berücksichtigen
Ich habe eine Vertragsklasse, die Elemente mit @ XmlElement-Tags enthält. Zum Beispiel
@XmlElement(name = "balancemoney")
protected Amount balanceMoney;
Mit dem JAXBContext kann ich die XML mit den richtigen Tags generieren.
Wenn ich jedoch die von jackson bereitgestellte Bibliothek verwende, wird das JSON-Tag weiterhin als "balanceMoney" anstelle von "balancemoney" eingegeben.
Wie kann ich Jackson anweisen, das @ XmlElement-Tag zu berücksichtigen?
Unten ist der Code, der dies tut.
//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));
}