第183章 JSon GSon DataFormat

Camel バージョン 2.10 以降で利用可能

Gson は、Gson Library を使用するデータ形式です

from("activemq:My.Queue").
  marshal().json(JsonLibrary.Gson).
  to("mqseries:Another.Queue");

183.1. Gson オプション

JSon GSon データ形式は、以下に示す 19 個のオプションをサポートしています。

名前デフォルトJava タイプ説明

objectMapper

 

String

Jackson を使用する場合は、指定された ID で既存の ObjectMapper を検索して使用します。

useDefaultObjectMapper

true

Boolean

レジストリーからデフォルトの Jackson ObjectMapper を検索して使用するかどうか。

prettyPrint

false

Boolean

適切にフォーマットされたきれいな印刷出力を有効にします。デフォルトでは false です。

library

XStream

JsonLibrary

使用する json ライブラリー。

unmarshalTypeName

 

String

アンアームシャリング時に使用する Java 型のクラス名

jsonView

 

Class

POJO を JSON にマーシャリングする際に、JSON 出力から特定のフィールドを除外する場合があります。Jackson では、JSON ビューを使用してこれを実現できます。このオプションは、JsonView アノテーションを持つクラスを参照します。

include

 

String

pojo を JSON にマーシャリングする必要があり、pojo に null 値を持つフィールドがいくつかある場合。これらの null 値をスキップするには、このオプションを NON_NULL に設定します。

allowJmsType

false

Boolean

JMS ユーザーが JMS 仕様の JMSType ヘッダーを使用して、アンマーシャリングに使用する FQN クラス名を指定できるようにするために使用されます。

collectionTypeName

 

String

使用するレジストリーを参照するカスタムコレクションタイプを参照します。このオプションはあまり使用しないでください。ただし、デフォルトとして java.util.Collection に基づくものとは異なるコレクションタイプを使用できます。

useList

false

Boolean

Map の List または Pojo の List にアンマーシャリングします。

enableJaxbAnnotationModule

false

Boolean

jackson の使用時に JAXB アノテーションモジュールを有効にするかどうか。有効にすると、Jackson によって JAXB アノテーションを使用できます。

moduleClassNames

 

String

カスタム Jackson モジュール com.fasterxml.jackson.databind.Module を使用するには、FQN クラス名を持つ文字列として指定します。複数のクラスはコンマで区切ることができます。

moduleRefs

 

String

Camel レジストリーから参照されるカスタム Jackson モジュールを使用します。複数のモジュールはコンマで区切ることができます。

enableFeatures

 

String

Jackson com.fasterxml.jackson.databind.ObjectMapper で有効にする機能のセット。この機能は、com.fasterxml.jackson.databind.SerializationFeature、com.fasterxml.jackson.databind.DeserializationFeature、または com.fasterxml.jackson.databind.MapperFeature の列挙型と一致する名前である必要があります。複数の機能はコンマで区切ることができます。

disableFeatures

 

String

Jackson com.fasterxml.jackson.databind.ObjectMapper で無効にする機能のセット。この機能は、com.fasterxml.jackson.databind.SerializationFeature、com.fasterxml.jackson.databind.DeserializationFeature、または com.fasterxml.jackson.databind.MapperFeature の列挙型と一致する名前である必要があります。複数の機能はコンマで区切ることができます。

permissions

 

String

xml/json から Java Bean へのアンマーシャリング中に使用できる Java パッケージおよびクラス XStream を制御するパーミッションを追加します。パーミッションは、JVM システムプロパティーを使用して、この場所またはグローバルに設定する必要があります。パーミッションは、プラス記号が許可で、マイナス記号が拒否である構文で指定できます。ワイルドカードは . を接頭辞として使用することでサポートされます。たとえば、com.foo およびすべてのサブパッケージを許可するには、com.foo を指定します。複数のパーミッションは、com.foo.,-com.foo.bar.MySecretBean のようにコンマで区切ることができます。以下のデフォルトパーミッションは常に、キー org.apache.camel.xstream.permissions で JVM システムプロパティーを指定して上書きされない限り、-,java.lang.,java.util. が含まれます。

allowUnmarshallType

false

Boolean

有効にすると、Jackson はアンマーシャリング中に CamelJacksonUnmarshalType ヘッダーの使用を試みることができます。これは、使用する必要がある場合にのみ有効にする必要があります。

timezone

 

String

設定されている場合、Jackson はマーシャリング/アンマーシャリング時にタイムゾーンを使用します。このオプションは、gson、fastjson、xstream など、他の Json DataFormat には影響を与えません。

contentTypeHeader

false

Boolean

データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。