Partilhar via


Converter JSON em XML

APLICA-SE A: Todas as camadas de gerenciamento de API

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

Nota

Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Saiba mais sobre como definir ou editar 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 Description Necessário Predefinição
apply O atributo deve ser definido como um dos seguintes valores.

- always - Aplique sempre a conversão.
- content-type-json - converter somente se o cabeçalho Content-Type da resposta indicar a presença de JSON.

São permitidas expressões de política.
Sim N/A
consider-accept-header O atributo deve ser definido como um dos seguintes valores.

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

São permitidas expressões de política.
Não true
data de análise Quando definido como data, os valores são simplesmente copiados durante a false transformação. Expressões de política não são permitidas. Não true
separador de namespace O caractere a ser usado como separador de namespace. São permitidas expressões de política. Não Caráter de sublinhado
namespace-prefixo A cadeia de caracteres que identifica a propriedade como atributo de namespace, geralmente "xmlns". Propriedades com nomes começando com prefixo especificado serão adicionadas ao elemento atual como declarações de namespace. São permitidas expressões de política. No N/A
atributo-bloco-nome Quando definido, as propriedades dentro do objeto nomeado serão adicionadas ao elemento como atributos. São permitidas expressões de política. Não Não definido

Utilização

Exemplo

Considere a seguinte política:

<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 para o 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: