Skip to main content
Skip table of contents

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.


Figure 1: JSON to XML Policy Configuration attributes

PropertyDescription
JSON types as attributes

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

Expand Array Name to Child ElementsEnabling this will copy the parent JSONArray name to its child elements during JSON to XML conversion.
Root NameThis 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

JS
{"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.

Root Name property set as 'Root' and Element Name propety as 'element'

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>

JSON Types as Atrributes property and Expand Array Name to Child Elements property enabled

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>

JSON Types as Atrributes property and Expand Array Name to Child Elements property disabled

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>

JSON Types as Atrributes property disabled and Expand Array Name to Child Elements property enabled

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>


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.