Compartir a través de


Convertir JSON a XML

SE APLICA A: todos los niveles de API Management

La directiva json-to-xml convierte un cuerpo de solicitud o respuesta de JSON a XML.

Nota:

Establezca los elementos de la directiva y los elementos secundarios en el orden proporcionado en la instrucción de directiva. Obtenga más información sobre el establecimiento o modificación de directivas de API Management.

Instrucción de la directiva

<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 Descripción Necesario Valor predeterminado
apply El atributo debe establecerse en uno de los siguientes valores.

- always: indica que se debe aplicar siempre la conversión.
- content-type-json: especifica que solo se debe realizar la conversión si el encabezado Content-Type indica la presencia de JSON.

Se permiten expresiones de directiva.
N/D
consider-accept-header El atributo debe establecerse en uno de los siguientes valores.

- true: especifica que se debe aplicar la conversión si se solicita XML en el encabezado de aceptación (Accept) de la solicitud.
- false: indica que se debe aplicar siempre la conversión.

Se permiten expresiones de directiva.
No true
parse-date Cuando se establece en false, los valores de fecha simplemente se copian durante la transformación. No se permiten expresiones de directiva. No true
namespace-separator Carácter que se va a usar como separador de espacio de nombres Se permiten expresiones de directiva. No Guión bajo
namespace-prefix Cadena que identifica la propiedad como atributo de espacio de nombres, normalmente "xmlns". Las propiedades con nombres que comienzan por el prefijo especificado se agregarán al elemento actual como declaraciones de espacio de nombres. Se permiten expresiones de directiva. No N/D
attribute-block-name Cuando se establece, las propiedades dentro del objeto con nombre se agregarán al elemento como atributos. Se permiten expresiones de directiva. No Sin establecer

Uso

Ejemplo

Considere la siguiente directiva:

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

Si el back-end devuelve el siguiente código 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"
        }
      }
    }
  }
}

La respuesta XML al 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 más información sobre el trabajo con directivas, vea: