API Management

JSON to XML

Contents

The JSON2XML policy enables developers to convert messages from the JavaScript object notation (JSON) format to the extensible markup language (XML) format. This policy is useful for enabling backend XML services to support RESTful applications that require JSON due to, for example, a lack of an XML parsing capabilities on the client.

The attributes available are shown in the figure and described in the section below.

Configuration

The properties that have to be configured so as to use the policy are described below.

image2014-10-7 20:36:4.png
Figure 1: JSON to XML Policy Configuration attributes

Property

Description

JSON types as attributes

Whether or not JSON element types should be included as attributes in Output XML.

Expand Array Name to Child Elements

Enabling this will copy the parent JSONArray name to its child elements during JSON to XML conversion.

Root Name

This field is used to set the name of the root for the converted XML. If it is set to null, then this property is ignored.

Element Name

This field is used to set the element name for each object of the array in the converted XML. When an array object in JSON format is converted into XML, each element of the JSON array is split into different XML fields. Each field is assigned an Element Name. If it is set to null, then this property is ignored.

Example

Sample Input

JavaScript
{"shiporder": { "@orderid": "orderid", "orderperson": "orderperson", "shipto": { "name": "name", "country": "country" }, 
"item": { "title": "title", "quantity": [12,15]} }} 

Output

Various outputs depending on changes to the configuration are given below.

XML
<?xml version="1.0" encoding="UTF-8"?>
<Root>
   <shiporder orderid="orderid">
      <item>
         <quantity>
            <element>12</element>
            <element>15</element>
         </quantity>
         <title>title</title>
      </item>
      <orderperson>orderperson</orderperson>
      <shipto>
         <country>country</country>
         <name>name</name>
      </shipto>
   </shiporder>
</Root>
XML
 <?xml version="1.0" encoding="UTF-8"?>
<shiporder class="object" orderid="orderid">
   <item class="object">
      <quantity type="number">12</quantity>
      <quantity type="number">15</quantity>
      <title type="string">title</title>
   </item>
   <orderperson type="string">orderperson</orderperson>
   <shipto class="object">
      <country type="string">country</country>
      <name type="string">name</name>
   </shipto>
</shiporder>
XML
 <?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="orderid">
   <item>
      <quantity>1215</quantity>
      <title>title</title>
   </item>
   <orderperson>orderperson</orderperson>
   <shipto>
      <country>country</country>
      <name>name</name>
   </shipto>
</shiporder>
XML
 <?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="orderid">
   <item>
      <quantity>12</quantity>
      <quantity>15</quantity>
      <title>title</title>
   </item>
   <orderperson>orderperson</orderperson>
   <shipto>
      <country>country</country>
      <name>name</name>
   </shipto>
</shiporder>