In my Apache Wink based REST API project, I am using Jackson xml jax-rs providers. And I would like these providers to transform the POJO to XML based on Jackson/JAXB annotations. There is a requirement to dynamically set the root element name based on a property value (ie., value of a member variable). The scenarios is illustrated below:
public class Response {
public String name;
public List<Message> messageList;
}
public class Message {
private String messageDetails;
private String messageType;
}
The serialized XML will be something like:
<Response>
<Messages>
<Message>
<messageDetails>abc</messageDetails>
<messageType>Warning</messageType>
</Message>
<Message>
<messageDetails>xyz</messageDetails>
<messageType>Error</messageType>
</Message>
</Messages>
</Response>
But, our requirement is to dynamically change <Message>
to <{messageType}>
, ie., either <Warning>
or <Error>
. Expected serialized XML:
<Response>
<Messages>
<Warning>
<messageDetails>abc</messageDetails>
</Warning>
<Error>
<messageDetails>xyz</messageDetails>
</Error>
</Messages>
</Response>
Is it possible to provide Jackson/JAXB annotations to use value of messageType as element name. Please share your thoughts.
No comments:
Post a Comment