Condividi tramite


Convert JSON to XML (Converti da JSON a XML)

SI APPLICA A: Tutti i livelli di Gestione API

Il criterio json-to-xml converte il corpo della richiesta o della risposta da JSON a XML.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Attributo Descrizione Richiesto Valore predefinito
apply Questo attributo deve essere impostato su uno dei valori seguenti.

- always: applica sempre la conversione.
- content-type-json: applica la conversione solo se l'intestazione Content-Type della risposta indica la presenza di JSON.

Le espressioni di criteri sono consentite.
N/D
consider-accept-header Questo attributo deve essere impostato su uno dei valori seguenti.

- true: applica la conversione se XML è richiesto nell'intestazione Accept della richiesta.
- false: applica sempre la conversione.

Le espressioni di criteri sono consentite.
No true
parse-date Se impostato su false, i valori data vengono semplicemente copiati durante la trasformazione. Le espressioni di criteri non sono consentite. No true
separatore-spazio dei nomi Carattere da utilizzare come separatore dello spazio dei nomi. Le espressioni di criteri sono consentite. No Carattere di sottolineatura
prefisso-spazio dei nomi Stringa che identifica la proprietà come attributo dello spazio dei nomi, in genere "xmlns". Le proprietà con nomi che iniziano con il prefisso specificato verranno aggiunte all'elemento corrente come dichiarazioni dello spazio dei nomi. Le espressioni di criteri sono consentite. No N/D
nome-blocco-attributo Se impostato, le proprietà all'interno dell'oggetto denominato verranno aggiunte all'elemento come attributi. Le espressioni di criteri sono consentite. No Non impostato

Utilizzo

Esempio

Considerare il criterio riportato di seguito:

<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 il back-end restituisce il codice JSON seguente:

{
  "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 risposta XML al client sarà:

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

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: