Mapping JSON Data Types
Integration Server maps IS data type from JSON data types as follows:
JSON data type | IS data type |
object | Document |
string | String |
number (real) | Float or Double Java wrapper, depending on the option you select for mapping real numbers. |
number (integer) | Integer or Long Java wrapper, depending on the option you select for mapping integers. |
true/false | Boolean Java wrapper type |
array | Array of an Integration Server data type. If the JSON object contains a string array, Integration Server sets the corresponding field in the IS document type to String List. If the JSON object contains a two-dimensional string array, Integration Server sets the corresponding field in the IS document type to String Table. If the JSON object contains a array having different types of objects (example, integer, string), Integration Server sets the corresponding field in the IS document type to Object List with Java wrapper type as UNKNOWN. Note:Integration Server does not support the following multi-dimensional arrays in JSON objects: Two-dimensional arrays of data types other than string Multi-dimensional arrays of three or more dimensions (three-dimensional, four-dimensional, and so on.) For IS document types created from a JSON object using Designer, these kinds of arrays become an Object with a Java wrapper type of UNKNOWN. |
array of null | Object List |
null | null |
All others | String Note: If an object has a toString() implementation, Integration Server uses that implementation. If the object does not provide a toString() implementation, Integration Server uses Object.toString(). Object.toString() returns the class name and hexadecimal representation of the hash code of the object, such as "javax.namining.InitialContext@3ae6f00b". |
Note:
If JSON text begins with an array at the root and the array is unnamed, when parsing the JSON text, Integration Server uses a fixed name of $rootArray for the array value. The $rootArray field appears in the output pipeline of the service converting the JSON text to a Document (IData). When creating a JSON response, if the pipeline contains $rootArray with an array as its value, Integration Server discards the $rootArray name and transforms the array value into a JSON array. The resulting JSON text will contain only an unnamed array.
Note:
With regards to using
Integration Server data types with JSON,
Integration Server supports only those types that can be mapped to a JSON value as defined in
https://tools.ietf.org/html/rfc7159#section-3.
Integration Servercan take any valid arbitrary JSON text and convert it to an IData.
Integration Server must be able to convert the resulting IData to JSON text that is identical to the original text. If
Integration Server cannot do that for an
Integration Server data type, then
Integration Server does not support the use of that data type with JSON. For example, com.wm.util.Table is not supported for JSON even though it is supported for XML.
Integration Server embeds additional type information in XML when converting IData to XML. However,
Integration Server cannot embed the additional type information in JSON because the additional type information is treated as JSON text. The resulting JSON text would not match the original JSON text.
Note:
In Designer, when you use a JSON file containing fields with a “null” value to generate a document type, such fields are defined as strings in the generated document type.