Konvertera JSON till XML

GÄLLER FÖR: Alla API Management-nivåer

Principen json-to-xml konverterar en begäran eller svarstext från JSON till XML.

Kommentar

Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.

Principuttryck

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

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
apply Attributet måste anges till något av följande värden.

- always - tillämpa alltid konvertering.
- content-type-json – konvertera endast om svarsrubriken Content-Type anger förekomsten av JSON.

Principuttryck tillåts.
Ja Ej tillämpligt
consider-accept-header Attributet måste anges till något av följande värden.

- true – tillämpa konvertering om XML begärs i begäran Acceptera huvud.
- false - tillämpa alltid konvertering.

Principuttryck tillåts.
Nej true
parsningsdatum När värdet är inställt på false datum kopieras du helt enkelt under omvandlingen. Principuttryck tillåts inte. Nej true
namespace-separator Tecknet som ska användas som en namnområdesavgränsare. Principuttryck tillåts. Nej Understreck
namespace-prefix Strängen som identifierar egenskapen som namnområdesattribut, vanligtvis "xmlns". Egenskaper med namn som börjar med angivet prefix läggs till i det aktuella elementet som namnområdesdeklarationer. Principuttryck tillåts. Nej Ej tillämpligt
attribute-block-name När värdet anges läggs egenskaper i det namngivna objektet till i elementet som attribut. Principuttryck tillåts. Nej Anges inte

Användning

Exempel

Överväg följande princip:

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

Om serverdelen returnerar följande 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"
        }
      }
    }
  }
}

XML-svaret på klienten blir:

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

Mer information om hur du arbetar med principer finns i: