Partage via


Convert JSON to XML

S’APPLIQUE À : tous les niveaux de Gestion des API

La stratégie json-to-xml convertit le corps de la demande ou de la réponse de JSON en XML.

Notes

Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.

Instruction de la stratégie

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

Attributs

Attribut Description Obligatoire Default
apply L’attribut doit avoir l’une des valeurs suivantes.

- always : toujours appliquer la conversion.
- content-type-json : ne convertir que si l’en-tête de réponse Content-Type indique la présence de JSON.

Les expressions de stratégie sont autorisées.
Oui N/A
consider-accept-header L’attribut doit avoir l’une des valeurs suivantes.

- true : appliquer la conversion si le format XML est demandé dans l’en-tête d’acceptation de la demande.
- false : toujours appliquer la conversion.

Les expressions de stratégie sont autorisées.
Non true
date de l’analyse Quand les valeurs de date sont définies sur false, elles sont simplement copiées lors de la transformation. Les expressions de stratégie ne sont pas autorisées. Non true
namespace-separator Caractère à utiliser comme séparateur d’espace de noms. Les expressions de stratégie sont autorisées. No Trait de soulignement
namespace-prefix Chaîne qui identifie la propriété en tant qu’attribut d’espace de noms, généralement « xmlns ». Les propriétés dont les noms commencent par le préfixe spécifié sont ajoutées à l’élément actuel en tant que déclarations d’espace de noms. Les expressions de stratégie sont autorisées. Non N/A
attribute-block-name Quand il est défini, les propriétés à l’intérieur de l’objet nommé sont ajoutées à l’élément en tant qu’attributs. Les expressions de stratégie sont autorisées. No Non défini

Usage

Exemple

Observez la stratégie suivante :

<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 le back-end retourne le code JSON suivant :

{
  "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 réponse XML au client est la suivante :

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

Pour plus d’informations sur l’utilisation des stratégies, consultez :