...
Code Block |
<dataFormats>
<json id="json" library="Jackson" include="NOT_NULL"/>
</dataFormats> |
Unmarshalling from json to POJO with dynamic class name
Available as of Camel 2.14
If you use jackson to unmarshal json to POJO, then you can now specify a header in the message that indicate which class name to unmarshal to.
The header has key CamelJacksonUnmarshalType
if that header is present in the message, then Jackson will use that as FQN for the POJO class to unmarshal the json payload as. Notice that behavior is enabled out of the box from Camel 2.14 onwards.
For JMS end users there is the JMSType header from the JMS spec that indicates that also. To enable support for JMSType you would need to turn that on, on the jackson data format as shown:
Code Block |
JacksonDataFormat format = new JacksonDataFormat();
format.setAllowJmsType(true);
|
Or from XML DSL you configure this as
Code Block |
<dataFormats>
<json id="json" library="Jackson" allowJmsType="true"/>
</dataFormats>
|
Dependencies for XStream
To use JSON in your camel routes you need to add the a dependency on camel-xstream which implements this data format.
...