JSON to XML
JSON to XML ポリシーは、API のコンテキスト・ペイロードを JavaScript Object Notation (JSON) 形式から Extensible Markup Language (XML) 形式に変換するために使用します。
ゲートウェイのサポート
ゲートウェイ | ポリシーのバージョン |
---|---|
DataPower® Gateway (v5 互換) | 1.0.0 |
DataPower API Gateway | 2.0.0 |
このトピックでは、アセンブリー・ユーザー・インターフェースでのポリシーの構成方法について説明します。OpenAPI ソースでのポリシーの構成方法について詳しくは、json-to-xmlを参照してください。
概要
JSON to XML ポリシーでは、BadgerFish に基づく単純な規則を使用して、API コンテキスト・ペイロードが JSON から XML に変換されます。このポリシーは、JSON 入力が BadgerFish 規則と同じ形式であることを予期するため、構造は XML で再作成できます。追加の構成は不要です。BadgerFish 規則について詳しくは、BadgerFish を参照してください。
注: JSON to XML ポリシーは、JSON 構造 { "a" : "hello" } (BadgerFish 規則ではない構造) を <a>hello</a> に変換します。
このポリシーを以下の API フローに付加できます。
- REST
- SOAP
組み込みポリシーをフローに追加するために API 定義を作成する場合は、IBM® API Connect API Manager アセンブリー・ビューを使用します。
このポリシーは、変換を実行する必要があるポイントのフローに付加する必要があります。例えば、JSON 形式の要求を XML 形式の要求に変換する必要がある場合は、このポリシーを要求フローに付加します。
ポリシーは、message.body のコンテキストが存在する場合は message.body から入力を読み取り、存在しない場合は request.body から入力を読み取って、message.body に出力を書き込みます。
プロパティー
以下の表に、このポリシーのプロパティーをリストします。表には、プロパティーが必須かどうか、入力用の有効な値とデフォルト値、および値のデータ型が示されています。
プロパティー・ラベル | 必須 | 説明 | データ型 |
---|---|---|---|
タイトル | はい | ポリシーのタイトル。 デフォルト値は、json-to-xml です。 |
ストリング |
説明 | いいえ | ポリシーの説明。 | ストリング |
入力 | いいえ | 変換する入力メッセージ。API コンテキストの変数の名前を指定します。 variableName.body (メッセージ・ペイロード) が、変換対象の JSON 入力を表します。この変数のデフォルト値は message であり、message.body がデフォルトの入力です。 | ストリング |
出力 | いいえ | 変換結果を保管するための出力メッセージ。API コンテキストの変数の名前を指定します。 variableName.body が、JSON 形式から XML 形式への変換の結果を表します。指定された入力メッセージがデフォルトのメッセージである場合、デフォルトの出力は message.body です。それ以外の場合、例えば、入力メッセージが変数 my-message-variable である場合は、デフォルトの出力は my-message-variable.body となります。 変数を、API コンテキストの読み取り専用にすることはできません。 |
ストリング |
変換のタイプ | いいえ | 出力のターゲット形式を決定する変換タイプ。使用可能なオプションは次のとおりです。
|
ストリング |
ルート XML エレメント名 (Root XML Element Name) | はい | 結果の XML 文書のルート・エレメント名。このプロパティーが使用されるのは、階層構造になっていない入力 JSON 文書に複数の最上位プロパティーが含まれている場合か、「常にルート・エレメントを出力 (Always output the root element)」チェック・ボックスが選択されている場合だけです。 デフォルト値は json です。 |
ストリング |
常にルート・エレメントを出力 (Always output the root element) | はい | XML 文書を整形式にする必要がない場合であっても、ポリシーで常にルート・エレメントを出力する場合は、このチェック・ボックスを選択します。 デフォルト値は false です。 |
ブール |
JSON 配列エレメントのエレメント名 | いいえ | JSON 配列エレメントに使用される XML エレメント名です。 | ストリング |
例
例えば、以下の単純な JSON オブジェクト
{ "a": { "$" : "hello" } }
は、次のようになります。<a>hello</a>
1 つの属性が指定された以下の JSON オブジェクト
{ "a": { "$" : "hello", "@type" : "world" } }
は、次のようになります。<a type="world">hello</a>