JSON JSON-B
Since Camel 3.7
JSON-B is a Data Format which uses the standard (javax) JSON-B library.
from("activemq:My.Queue").
marshal().json(JsonLibrary.Jsonb).
to("mqseries:Another.Queue");
JSON-B Options
The JSON JSON-B dataformat supports 3 options, which are listed below.
Name | Default | Java Type | Description |
---|---|---|---|
objectMapper |
|
Lookup and use the existing Jsonb instance with the given id. |
|
prettyPrint |
|
|
To enable pretty printing output nicely formatted. Is by default false. |
unmarshalTypeName |
|
Class name of the java type to use when unmarshalling |
Dependencies
To use JSON-B in your camel routes you need to add the dependency on camel-jsonb which implements this data format.
If you use maven you could just add the following to your pom.xml, substituting the version number for the latest & greatest release (see the download page for the latest versions).
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jsonb</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
You have to add a dependency on the implementation of a jsonb specification.
If you want to add the Johnzon implementation and you are using maven, just add following to your pom.xml
<dependency>
<groupId>org.apache.johnzon</groupId>
<artifactId>johnzon-jsonb</artifactId>
<version>x.x.x</version>
</dependency>
Spring Boot Auto-Configuration
When using jsonb with Spring Boot make sure to use the following Maven dependency to have support for auto configuration:
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-jsonb-starter</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
The component supports 4 options, which are listed below.
Name | Description | Default | Type |
---|---|---|---|
camel.dataformat.json-jsonb.enabled |
Whether to enable auto configuration of the json-jsonb data format. This is enabled by default. |
Boolean |
|
camel.dataformat.json-jsonb.object-mapper |
Lookup and use the existing Jsonb instance with the given id. |
String |
|
camel.dataformat.json-jsonb.pretty-print |
To enable pretty printing output nicely formatted. Is by default false. |
false |
Boolean |
camel.dataformat.json-jsonb.unmarshal-type-name |
Class name of the java type to use when unmarshalling |
String |