JSON converteren naar XML

VAN TOEPASSING OP: Alle API Management-lagen

Het json-to-xml beleid converteert een aanvraag- of antwoordtekst van JSON naar XML.

Notitie

Stel de elementen en onderliggende elementen van het beleid in de volgorde in die in de beleidsverklaring is opgegeven. Meer informatie over het instellen of bewerken van API Management-beleid.

Beleidsinstructie

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

Kenmerken

Kenmerk Beschrijving Vereist Standaardinstelling
toepassen Het kenmerk moet worden ingesteld op een van de volgende waarden.

- always - altijd conversie toepassen.
- content-type-json - converteer alleen als de header Van het antwoordinhoudstype de aanwezigheid van JSON aangeeft.

Beleidsexpressies zijn toegestaan.
Ja N.v.t.
consider-accept-header Het kenmerk moet worden ingesteld op een van de volgende waarden.

- true - conversie toepassen als XML wordt aangevraagd in aanvraag accepteren header.
- false - altijd conversie toepassen.

Beleidsexpressies zijn toegestaan.
Nee true
parseringsdatum Wanneer deze waarde is ingesteld op false datumwaarden, worden tijdens de transformatie gewoon gekopieerd. Beleidsexpressies zijn niet toegestaan. Nee true
scheidingsteken voor naamruimte Het teken dat moet worden gebruikt als scheidingsteken voor een naamruimte. Beleidsexpressies zijn toegestaan. Nee Onderstrepingsteken
naamruimte-voorvoegsel De tekenreeks die de eigenschap identificeert als naamruimtekenmerk, meestal 'xmlns'. Eigenschappen met namen die beginnen met het opgegeven voorvoegsel, worden als naamruimtedeclaraties toegevoegd aan het huidige element. Beleidsexpressies zijn toegestaan. Nee N.v.t.
kenmerk-bloknaam Wanneer dit is ingesteld, worden eigenschappen in het benoemde object als kenmerken toegevoegd aan het element. Beleidsexpressies zijn toegestaan. Nee Niet ingesteld

Gebruik

Opmerking

Houd rekening met het volgende beleid:

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

Als de back-end de volgende JSON retourneert:

{
  "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"
        }
      }
    }
  }
}

Het XML-antwoord op de client is:

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

Zie voor meer informatie over het werken met beleid: