Importing JSON files

These examples demonstrate how to import various types of JSON data and the necessary XPath settings for each. JSON files that you import should follow these guidelines.

  • The XPath for JSON arrays must specify the array root element twice, such as /incidents/incidents.
  • JSON files should follow RFC-4627. For example, a single comma should separate a value from the following name. Names within an object should be unique.
  • Predicates such as @element, [index], or text() as well as Axis such as children, siblings, or ancestors are not supported.

Simple array

  • XPath: /incidents/incidents
  • Result: 2 records
In this example the XPath includes the array root node /incidents twice. This is necessary when importing an array.
{  
   "source":"HI",
   "incidents":[  
      {  
         "number":"INC0000001",
         "short_description":"Can't read email"
      },
      {  
         "number":"INC0000002",
         "short_description":"Error loading XML file"
      }
   ]
}

Array in 2nd level

  • XPath: /problems/data/data
  • Result: 4 records
In this example the XPath includes the array root node /data twice.
{  
   "problems":{  
      "id":"0",
      "data":[  
         {  
            "number":"PRBTEST001",
            "short_description":"testsd1"
         },
         {  
            "number":"PRBTEST002",
            "short_description":"testsd2"
         },
         {  
            "number":"PRBTEST003",
            "short_description":"testsd3"
         }
      ]
   }
}

Nested array

  • XPath: /problems/problems/data/data
  • Result: 3 records
In this example the XPath includes the root nodes for both arrays twice, /problems and /data.
{  
   "problems": [  
         {
      "id":0,
      "data":[  
            {  
               "number":"PRBTEST001",
               "short_description":"testsd1"
            },
            {  
               "number":"PRBTEST002",
               "short_description":"testsd2"
            },
            {  
               "number":"PRBTEST003",
               "short_description":"testsd3"
            }
          ]
       }
    ]	
}

Orphan array

Important: This format is not supported. A JSON array must always be inside an element. The JSON file must always start with "{" and end with "}".
[  
   {  
      "number":"PRBTEST001",
      "short_description":"testsd1"
   },
   {  
      "number":"PRBTEST002",
      "short_description":"testsd2"
   }
]

Multiple elements instead of an array

  • XPath: /problems/problem
  • Result: 3 records
Important: This format is not recommended. JSON files should follow RFC-4627 which states that names within an object should be unique. Use JSON arrays instead.
{  
   "problems":{  
      "title":"2 problems",
      "problem":{  
         "number":"PRBTEST001",
         "short_description":"testsd1"
      },
      "problem":{  
         "number":"PRBTEST002",
         "short_description":"testsd2"
      }
   },
   "problems":{  
      "title":"1 problem",
      "problem":{  
         "number":"PRBTEST005",
         "short_description":"testsd5"
      }
   }
}