JSON から XML への変換
適用対象: すべての API Management レベル
json-to-xml
ポリシーは、要求本文または応答本文を JSON から XML に変換します。
Note
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<json-to-xml
apply="always | content-type-json"
consider-accept-header="true | false"
parse-date="true | false"
namespace-separator="separator character"
namespace-prefix="namespace prefix"
attribute-block-name="name" />
属性
属性 | 説明 | 必要 | Default |
---|---|---|---|
apply | この属性の値は次のいずれかに設定する必要があります。 - always - 常に変換を適用します。- content-type-json - 応答の Content-Type ヘッダーに JSON の存在が示されている場合のみ変換を行います。ポリシー式を使用できます。 |
はい | 該当なし |
consider-accept-header | この属性の値は次のいずれかに設定する必要があります。 - true - 要求の Accept ヘッダーで XML が要求されている場合に変換を適用します。- false - 常に変換を適用します。ポリシー式を使用できます。 |
いいえ | true |
parse-date | false に設定すると、変換中、日付値がコピーされます。 ポリシー式は使用できません。 |
いいえ | true |
namespace-separator | 名前空間の区切り文字として使用する文字。 ポリシー式を使用できます。 | いいえ | アンダースコア |
namespace-prefix | プロパティを名前空間属性 (通常は "xmlns") として識別する文字列。 指定したプレフィックスで始まる名前のプロパティは、名前空間宣言として現在の要素に追加されます。 ポリシー式を使用できます。 | いいえ | 該当なし |
attribute-block-name | 設定すると、指定されたオブジェクト内のプロパティが属性として要素に追加されます。 ポリシー式を使用できます。 | いいえ | 未設定 |
使用法
- ポリシー セクション: inbound、outbound、on-error
- ポリシー スコープ: グローバル、ワークスペース、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
例
次のポリシーを考慮してください。
<policies>
<inbound>
<base />
</inbound>
<outbound>
<base />
<json-to-xml apply="always" consider-accept-header="false" parse-date="false" namespace-separator=":" namespace-prefix="xmlns" attribute-block-name="#attrs" />
</outbound>
</policies>
バックエンドが次の JSON を返す場合:
{
"soapenv:Envelope": {
"xmlns:soapenv": "http://schemas.xmlsoap.org/soap/envelope/",
"xmlns:v1": "http://localdomain.com/core/v1",
"soapenv:Header": {},
"soapenv:Body": {
"v1:QueryList": {
"#attrs": {
"queryName": "test"
},
"v1:QueryItem": {
"name": "dummy text"
}
}
}
}
}
クライアントへの XML 応答は次のようになります。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://localdomain.com/core/v1">
<soapenv:Header />
<soapenv:Body>
<v1:QueryList queryName="test">
<name>dummy text</name>
</v1:QueryList>
</soapenv:Body>
</soapenv:Envelope>
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。
- チュートリアル:API を変換および保護する
- ポリシー ステートメントとその設定の一覧に関するポリシー リファレンス
- ポリシー式
- ポリシーの設定または編集
- ポリシー構成を再利用する
- ポリシー スニペットのリポジトリ
- Azure で Microsoft Copilot を使用してポリシーを作成する