Red Hat Training

A Red Hat training course is available for Red Hat Fuse

第176章 JSon Johnzon DataFormat

Camel バージョン 2.18 から利用可能

Johnzon は、Johnzon ライブラリーを使用するデータ形式です。

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

176.1. Johnzon オプション

JSon Johnzon データフォーマットは、以下に示す 19 個のオプションをサポートします。

NameデフォルトJava タイプ説明

objectMapper

 

文字列

Jackson を使用する際に、指定の ID で既存の ObjectMapper を検索し、使用します。

useDefaultObjectMapper

true

ブール値

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

prettyPrint

false

ブール値

プリションでフォーマットされた出力を有効にします。デフォルトは false です。

library

XStream

JsonLibrary

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

unmarshalTypeName

 

文字列

無効化解除時に使用する java タイプのクラス名

jsonView

 

class<?>

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

include

 

文字列

pojo を JSON にマーシャリングし、pojo には null 値を持つフィールドがあります。また、これらの null 値を省略する場合は、このオプションを NOT_NULL に設定します。

allowJmsType

false

ブール値

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

collectionTypeName

 

文字列

使用するレジストリーで検索するカスタムコレクションタイプを参照します。このオプションはほとんど使用されることはありませんが、デフォルトとして java.util.Collection とは異なるコレクションタイプを使用できます。

useList

false

ブール値

マップのリストまたは Pojo のリストへ無視する場合は、以下を行います。

enableJaxbAnnotationModule

false

ブール値

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

false

ブール値

有効にすると、Jackson はアンマーシャリング中に CamelJacksonUnmarshalType ヘッダーの使用を試みることができます。これは、使用する場合にのみ有効にしてください。

timezone

 

文字列

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

contentTypeHeader

false

ブール値

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