Designer 10.5 | webMethods Service Development Help | Working with Document Types | Creating an IS Document Type | Creating IS Document Types from JSON Objects | Mapping JSON Data Types
 
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, etc.), 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, etc.)
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.