[[json-jsonb-dataformat]]
= JSON JSON-B DataFormat
//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
:page-source: components/camel-jsonb/src/main/docs/json-jsonb-dataformat.adoc
:docTitle: JSON JSON-B
:artifactId: camel-jsonb
:description: Marshal POJOs to JSON and back using JSON-B.
:since: 3.7
:supportLevel: Preview
include::{cq-version}@camel-quarkus:ROOT:partial$reference/dataformats/json-jsonb.adoc[opts=optional]

*Since Camel {since}*

JSON-B is a Data Format which uses the standard (javax) JSON-B library.

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

== JSON-B Options



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



[width="100%",cols="2s,1m,1m,6",options="header"]
|===
| Name | Default | Java Type | Description
| objectMapper |  | String | Lookup and use the existing Jsonb instance with the given id.
| 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
|===
// dataformat options: END


== 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).

[source,xml]
----------------------------------------------------------
<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

[source,xml]
----------------------------------------------------------
<dependency>
  <groupId>org.apache.johnzon</groupId>
  <artifactId>johnzon-jsonb</artifactId>
  <version>x.x.x</version>  
</dependency>
----------------------------------------------------------

include::{page-component-version}@camel-spring-boot::page$jsonb-starter.adoc[]
