[[json-gson-dataformat]]
= JSON Gson DataFormat
:docTitle: JSON Gson
:artifactId: camel-gson
:description: Marshal POJOs to JSON and back using Gson
:since: 2.10
:supportLevel: Stable
include::{cq-version}@camel-quarkus:ROOT:partial$reference/dataformats/json-gson.adoc[opts=optional]

*Since Camel {since}*

Gson is a Data Format which uses the
https://github.com/google/gson[Gson Library]

[source,java]
-------------------------------
from("activemq:My.Queue").
  marshal().json(JsonLibrary.Gson).
  to("mqseries:Another.Queue");
-------------------------------

== Gson Options


// dataformat options: START
The JSON Gson dataformat supports 3 options, which are listed below.



[width="100%",cols="2s,1m,1m,6",options="header"]
|===
| Name | Default | Java Type | Description
| prettyPrint | false | Boolean | To enable pretty printing output nicely formatted. Is by default false.
| unmarshalTypeName |  | String | Class name of the java type to use when unmarshalling
| contentTypeHeader | true | Boolean | 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
|===
// dataformat options: END



== Dependencies

To use Gson in your camel routes you need to add the dependency
on *camel-gson* 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).

[source,xml]
----------------------------------------------------------
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-gson</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>
----------------------------------------------------------

include::camel-spring-boot::page$gson-starter.adoc[]
