Преобразование JSON в XML

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API

Политика json-to-xml преобразует текст запроса или ответа в формате JSON в формат XML.

Примечание.

Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.

Правило политики

<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" />

Атрибуты

Атрибут Description Обязательное поле По умолчанию.
apply Для атрибута нужно задать одно из следующих значений:

- always — всегда применять преобразование.
- content-type-json — преобразуется только в том случае, если заголовок content-Type ответа указывает на наличие JSON.

Допустимы выражения политики.
Да Н/П
consider-accept-header Для атрибута нужно задать одно из следующих значений:

- true — примените преобразование, если XML запрашивается в заголовке accept запроса.
- false — всегда применять преобразование.

Допустимы выражения политики.
No true
parse-date Если задано значение false даты, они просто копируются во время преобразования. Выражения политики не допускаются. No true
namespace-separator Символ, используемый в качестве разделителя пространства имен. Допустимы выражения политики. No Подчеркивание
namespace-prefix Строка, определяющая свойство как атрибут пространства имен, обычно "xmlns". Свойства с именами, начиная с указанного префикса, будут добавлены в текущий элемент в качестве объявлений пространства имен. Допустимы выражения политики. No Н/П
attribute-block-name При установке свойства внутри именованного объекта будут добавлены в элемент в качестве атрибутов. Допустимы выражения политики. No Не установлено

Использование

  • Разделы политики: входящий трафик, исходящий трафик, при возникновении ошибок
  • Области политики: глобальная, рабочая область, продукт, API, операция
  • Шлюзы: классическая, версия 2, потребление, локальное размещение

Пример

Примите во внимание следующую политику:

<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>

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.