JSON Fastjson
Since Camel 2.20
Fastjson is a Data Format that uses the Fastjson Library
-
Java
-
XML
-
YAML
from("activemq:My.Queue")
.marshal().json(JsonLibrary.Fastjson)
.to("mqseries:Another.Queue"); <route>
<from uri="activemq:My.Queue"/>
<marshal><json library="Fastjson"/></marshal>
<to uri="mqseries:Another.Queue"/>
</route> - route:
from:
uri: activemq:My.Queue
steps:
- marshal:
json:
library: Fastjson
- to:
uri: mqseries:Another.Queue Fastjson Options
The JSON Fastjson dataformat supports the following options which are listed below.
| Name | Default | Java Type | Description |
|---|---|---|---|
|
| To enable pretty printing output nicely formatted. Is by default false. | |
| Class name of the java type to use when unmarshalling. | ||
|
| Whether the data format should set the Content-Type header with the type from the data format. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSON. |
A body that is already JSON
A body that already is the JSON text is written as it is, not serialized as a Java object: a file, an InputStream, a byte[], and a String whose text is a JSON object or array (it starts with { and ends with }, or [ and ]). So marshal: json after reading a JSON file, or after building the JSON with a template or a Simple expression, sends that JSON unchanged. Any other String is written as a JSON string, and POJOs, maps and lists are marshalled as usual. All the JSON data formats of Camel do the same.
Dependencies
To use Fastjson in your camel routes, you need to add the dependency on camel-fastjson which implements this data format.
If you use maven, you could add the following to your pom.xml, substituting the version number for the latest & greatest release.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-fastjson</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>