第184章 JSon GSon DataFormat
Camel バージョン 2.10 以降で利用可能
Gson は、Gson Library を使用するデータ形式です
from("activemq:My.Queue").
  marshal().json(JsonLibrary.Gson).
  to("mqseries:Another.Queue");
from("activemq:My.Queue").
  marshal().json(JsonLibrary.Gson).
  to("mqseries:Another.Queue");184.1. Gson オプション
JSon GSon データ形式は、以下に示す 19 個のオプションをサポートしています。
| 名前 | デフォルト | Java タイプ | 説明 | 
|---|---|---|---|
| objectMapper | 
								 | Jackson を使用する場合は、指定された ID で既存の ObjectMapper を検索して使用します。 | |
| useDefaultObjectMapper | 
								 | 
								 | レジストリーからデフォルトの Jackson ObjectMapper を検索して使用するかどうか。 | 
| prettyPrint | 
								 | 
								 | 適切にフォーマットされたきれいな印刷出力を有効にします。デフォルトでは false です。 | 
| library | 
								 | 
								 | 使用する json ライブラリー。 | 
| unmarshalTypeName | 
								 | アンアームシャリング時に使用する Java 型のクラス名 | |
| jsonView | 
								 | POJO を JSON にマーシャリングする際に、JSON 出力から特定のフィールドを除外する場合があります。Jackson では、JSON ビューを使用してこれを実現できます。このオプションは、JsonView アノテーションを持つクラスを参照します。 | |
| include | 
								 | pojo を JSON にマーシャリングする必要があり、pojo に null 値を持つフィールドがいくつかある場合。これらの null 値をスキップするには、このオプションを NON_NULL に設定します。 | |
| allowJmsType | 
								 | 
								 | JMS ユーザーが JMS 仕様の JMSType ヘッダーを使用して、アンマーシャリングに使用する FQN クラス名を指定できるようにするために使用されます。 | 
| collectionTypeName | 
								 | 使用するレジストリーを参照するカスタムコレクションタイプを参照します。このオプションはあまり使用しないでください。ただし、デフォルトとして java.util.Collection に基づくものとは異なるコレクションタイプを使用できます。 | |
| useList | 
								 | 
								 | Map の List または Pojo の List にアンマーシャリングします。 | 
| enableJaxbAnnotationModule | 
								 | 
								 | jackson の使用時に JAXB アノテーションモジュールを有効にするかどうか。有効にすると、Jackson によって JAXB アノテーションを使用できます。 | 
| moduleClassNames | 
								 | カスタム Jackson モジュール com.fasterxml.jackson.databind.Module を使用するには、FQN クラス名を持つ文字列として指定します。複数のクラスはコンマで区切ることができます。 | |
| moduleRefs | 
								 | Camel レジストリーから参照されるカスタム Jackson モジュールを使用します。複数のモジュールはコンマで区切ることができます。 | |
| enableFeatures | 
								 | Jackson com.fasterxml.jackson.databind.ObjectMapper で有効にする機能のセット。この機能は、com.fasterxml.jackson.databind.SerializationFeature、com.fasterxml.jackson.databind.DeserializationFeature、または com.fasterxml.jackson.databind.MapperFeature の列挙型と一致する名前である必要があります。複数の機能はコンマで区切ることができます。 | |
| disableFeatures | 
								 | Jackson com.fasterxml.jackson.databind.ObjectMapper で無効にする機能のセット。この機能は、com.fasterxml.jackson.databind.SerializationFeature、com.fasterxml.jackson.databind.DeserializationFeature、または com.fasterxml.jackson.databind.MapperFeature の列挙型と一致する名前である必要があります。複数の機能はコンマで区切ることができます。 | |
| permissions | 
								 | 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 | 
								 | 
								 | 有効にすると、Jackson はアンマーシャリング中に CamelJacksonUnmarshalType ヘッダーの使用を試みることができます。これは、使用する必要がある場合にのみ有効にする必要があります。 | 
| timezone | 
								 | 設定されている場合、Jackson はマーシャリング/アンマーシャリング時にタイムゾーンを使用します。このオプションは、gson、fastjson、xstream など、他の Json DataFormat には影響を与えません。 | |
| contentTypeHeader | 
								 | 
								 | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 |