第178章 JSon XStream DataFormat
Camel バージョン 2.0 で利用可能
XStream は、XStream ライブラリー を使用して Java オブジェクトを XML にマーシャリングおよびアンマーシャリングするデータ形式です。
camel ルートで XStream を使用するには、このデータ形式を実装する camel-xstream の依存関係を追加する必要があります。
Maven ユーザーは、このコンポーネントの pom.xml
に以下の依存関係を追加する必要があります。
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-xstream</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
178.1. オプション
JSon XStream データフォーマットは、以下に示す 19 個のオプションをサポートします。
Name | デフォルト | 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 値を省略する場合は、このオプションを NOT_NULL に設定します。 | |
allowJmsType |
|
| JMS 仕様からの JMSType ヘッダーがアンマーシャリングに使用する FQN クラス名を指定するために JMS ユーザーに使用されます。 |
collectionTypeName |
| 使用するレジストリーで検索するカスタムコレクションタイプを参照します。このオプションはほとんど使用されることはありませんが、デフォルトとして java.util.Collection とは異なるコレクションタイプを使用できます。 | |
useList |
|
| マップのリストまたは Pojo のリストへ無視する場合は、以下を行います。 |
enableJaxbAnnotationModule |
|
| Jackson を使用する際に JAXB アノテーションモジュールを有効にするかどうか。有効にすると、Jackson により JAXB アノテーションを使用できます。 |
moduleClassNames |
| FQN クラス名で String として指定されたカスタム Jackson モジュール com.fasterxml.jackson.databind.Module を使用します。複数のクラスをコンマで区切ることができます。 | |
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 システムプロパティーを使用してグローバルに設定する必要があります。パーミッションは、プラス記号が allow の構文で指定でき、マイナス記号は deny になります。ワイルドカードは、. をプレフィックスとして使用することでサポートされます。たとえば、com.foo およびすべてのサブパッケージを許可するには、specfy com.foo を使用します。com.foo.,-com.foo.bar.MySecretBean など、複数のパーミッションをコンマで区切って設定できます。以下のデフォルトパーミッションは常に、JVM システムプロパティーと org.apache.camel.xstream.permissions キーを指定して上書きされない限り、-,java.lang.,java.util. です。 | |
allowUnmarshallType |
|
| 有効にすると、Jackson はアンマーシャリング中に CamelJacksonUnmarshalType ヘッダーの使用を試みることができます。これは、使用する場合にのみ有効にしてください。 |
timezone |
| 設定された場合、Jackson はマーシャリング/アンマーシャリング時にタイムゾーンを使用します。このオプションは、gson、fastjson、xstream などの他の Json DataFormat には影響を与えません。 | |
contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合に、データ形式がデータ形式の型で Content-Type ヘッダーを設定するかどうか。たとえば、XML へのデータフォーマットの application/xml、または JSon へのデータフォーマットの application/json など。 |