將 JSON 轉換成 XML
適用於:所有 APIM 層
json-to-xml
原則將要求或回應本文從 JSON 轉換成 XML。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
原則陳述式
<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" />
屬性
屬性 | 描述 | 是必要欄位 | 預設 |
---|---|---|---|
套用 | 此屬性必須設為下列其中一個值。 - always – 一律套用轉換。- content-type-json – 只有當回應中的 Content-type 標頭指出 JSON 存在時才轉換。允許使用原則運算式。 |
Yes | N/A |
consider-accept-header | 此屬性必須設為下列其中一個值。 - true – 如果在要求的 Accept 標頭中要求 XML,才套用轉換。- false – 一律套用轉換。允許使用原則運算式。 |
No | true |
剖析日期 | 設定為 false 時,只會在轉換期間複製日期值。 不允許使用原則運算式。 |
No | true |
namespace-separator | 作為命名空間分隔符號的字元。 允許使用原則運算式。 | No | 底線 |
namespace-prefix | 將屬性識別為命名空間屬性的字串,通常是「xmlns」。 以指定前置詞開頭的名稱屬性將會新增至目前元素,作為命名空間宣告。 允許使用原則運算式。 | No | N/A |
attribute-block-name | 設定後,具名物件內的屬性會新增為元素的屬性。 允許使用原則運算式。 | No | 未設定 |
使用方式
範例
請考慮使用以下原則:
<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 API 管理 原則工具組
- 使用 Microsoft Azure Copilot 撰寫原則