Compartilhar via


Converter JSON para XML

APLICA-SE A: todas as camadas do Gerenciamento de API

A política json-to-xml converte o corpo da solicitação ou da resposta de JSON para XML.

Observação

Defina os elementos da política e os elementos filho na ordem fornecida na declaração da política. Saiba mais sobre como definir e editar as políticas de Gerenciamento de API.

Declaração de política

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

Atributos

Atributo Descrição Obrigatório Padrão
aplicar O atributo deve ser definido como um dos valores a seguir.

- always: sempre aplicar conversão.
- content-type-json: converter apenas se o cabeçalho Content-Type de resposta indicar a presença de JSON.

Expressões de política são permitidas.
Sim N/D
consider-accept-header O atributo deve ser definido como um dos valores a seguir.

- true: aplicar a conversão se o XML for solicitado no cabeçalho Accept da solicitação.
- false: sempre aplicar conversão.

Expressões de política são permitidas.
Não true
parse-date Quando definido como false, os valores de data são simplesmente copiados durante a transformação. Expressões de política não são permitidas. Não true
namespace-separator O caractere a ser usado como separador de namespace. Expressões de política são permitidas. No Sublinhado
prefixo de namespace A cadeia de caracteres que identifica a propriedade como atributo de namespace, geralmente "xmlns". Propriedades com nomes que começam com o prefixo especificado serão adicionadas ao elemento atual como declarações de namespace. Expressões de política são permitidas. No N/D
attribute-block-name Quando definido, as propriedades no objeto nomeado serão adicionadas ao elemento como atributos. Expressões de política são permitidas. No Não definido

Uso

Exemplo

Considere os seguintes pontos:

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

Se o back-end retornar o seguinte 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"
        }
      }
    }
  }
}

A resposta XML ao cliente será:

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

Para obter mais informações sobre como trabalhar com políticas, consulte: