Integration Server 10.15 | Built-In Services Reference Guide | JSON Folder | Summary of Elements in This Folder | pub.json:jsonStringToDocument
 
pub.json:jsonStringToDocument
WmPublic. Converts a JSON string to a document (an IData object).
Input Parameters
jsonString
String. JSON content in a string to convert to a document (IData object).
decodeRealAsDouble
String. Optional. Converts real numbers from jsonString to either a Float or Double Java wrapper type. Set to:
*true to convert real numbers to Double Java wrapper types. This is the default.
*false to convert real numbers to Float Java wrapper types.
Note:
The decodeRealAsDouble parameter overrides the value specified by the watt.server.json.decodeRealAsDouble server configuration parameter. If no value is supplied for decodeRealAsDouble, Integration Serveruses the value set in watt.server.json.decodeRealAsDouble. For more information about watt.server.json.decodeRealAsDouble, see webMethods Integration Server Administrator’s Guide.
decodeRealAsString
String. Optional. Converts real numbers in the jsonStream to String. Set to:
*true to convert real numbers to String.
*false to not convert real numbers to String. The real numbers are then converted to either Float or Double Java wrapper type depending on the values specified in decodeRealAsDouble. This is the default.
Note:
The decodeRealAsString parameter overrides the value specified by the watt.server.json.decodeRealAsString server configuration parameter. If no value is supplied for decodeRealAsString, Integration Server uses the value set in watt.server.json.decodeRealAsString. For more information about watt.server.json.decodeRealAsString, see webMethods Integration Server Administrator’s Guide.
decodeIntegerAsLong
String. Optional. Converts integers from jsonString to either a Long or Integer Java wrapper type. Set to:
*true to convert integers to Long Java wrapper types. This is the default.
*false to convert integers to Integer Java wrapper types.
Note:
The decodeRealAsDouble parameter overrides the value specified by the watt.server.json.decodeIntegerAsLong server configuration parameter. If no value is supplied for decodeIntegerAsLong, Integration Server uses the value specified in the watt.server.json.decodeIntegerAsLong property. For more information about watt.server.json.decodeIntegerAsLong, see webMethods Integration Server Administrator’s Guide.
decodeNullRootAsEmpty
String. Optional. Converts a null value that Integration Server retrieves from JSON content to either IData or empty IData. Set to:
*true to convert the null value to empty IData. The subsequent encoding of empty IData creates a JSON text of “{}”. This JSON content is different from the original JSON content (null) as the original null value gets converted to JSON text of "{}".
*false to convert the null value to IData. This is the default.
jsonDocumentTypeName
String. Optional. If specified, the transformation from JSON string to Document (IData) is based on the JSON document type. Any deviations from the provided JSON document might cause transformation errors.
When this parameter is provided, Integration Server ignores the following parameters:
*decodeRealAsDouble
*decodeIntegerAsLong
*decodeRealAsString
and the following server configuration parameters:
*watt.server.json.decodeIntegerAsLong
*watt.server.json.decodeRealAsDouble
*watt.server.json.decodeRealAsString
This parameter must have the fully qualified name of a JSON document type on Integration Server against which the JSON content is validated. This parameter must be in the format: <Folder Name>:<JSON Document Type Name>
For example: data:employeeData
strict
String. Optional. Valid values are true and false. The default value is false.
The values of strict and jsonDocumentTypeName parameters together determine how Integration Server parses and converts JSON string to Document (IData) in the following manner:
*When strict is false and jsonDocumentTypeName is not specified, there is no change in the behavior.
*When strict is false and jsonDocumentTypeName is specified, the transformation from JSON string to Document (IData) is loosely based on the JSON document type. For conversion rules, see: Table 1: Conversion of JSON Payload to IData.
*When strict is true and jsonDocumentTypeName is not specified, the service returns an exception.
*When strict is true and jsonDocumentTypeName is specified, the transformation from JSON string to Document (IData) is strictly based on the JSON document type. The validation is performed first before the transformation, and any deviations lead to transformation errors. The decodeRealAsDouble, decodeIntegerAsLong, and decodeRealAsString parameters and the server configuration parameters, if specified, are ignored.
unescapeSpecialChars
String. Optional. Controls whether Integration Server unescapes the special characters '\n', '\r', '\t', '\b', '\f', '\\', '\"' while parsing JSON documents. Set to:
*true to unescape these special characters (that is, '\n' will be replaced with new line, similarly other characters will also be replaced) in the output document. This is the default.
*false to keep these characters as is in the output document.
Note:
The unescapeSpecialChars parameter overrides the value specified by the watt.server.json.decode.unescapeSpecialChars server configuration parameter. If no value is supplied for unescapeSpecialChars, Integration Server uses the value specified in the watt.server.json.decode.unescapeSpecialChars parameter. For more information about watt.server.json.decode.unescapeSpecialChars, see webMethods Integration Server Administrator’s Guide.
Output Parameters
document
Document. Document (IData object) resulting from the conversion of jsonString.
Usage Notes
Software AG recommends that you use the pub.json:jsonToDocument service to convert JSON to a document (IData) instead of the pub.json:jsonStringToDocument or pub.json:jsonStreamToDocument services. The pub.json:jsonToDocument service simplifies conversion in favor of strings (by default) or as directed by a document type.
A JSON text may contain only an unnamed array. When parsing such a JSON text with pub.json:jsonStringToDocument, Integration Server uses a fixed name of $rootArray for the array value. The $rootArray field appears in the document output parameter.
The JSON standard requires that field names be enclosed in double quotes. However, when parsing legacy JavaScript as JSON text it may be helpful to allow unquoted field names as JavaScript does not require field names to be enclosed in double quotes. The server configuration parameter watt.server.json.allowUnquotedFieldNames specifies whether or not unquoted field names are allowed in JSON text passed to thepub.json:jsonStringToDocument and pub.json:jsonStreamToDocument services. If this parameter is set to true, the pub.json:jsonStringToDocument and pub.json:jsonStreamToDocument services allow unquoted field names in any supplied JSON text. If this parameter is set to false, the services throw a ServiceException when encountering unquoted field names. The default is false.
If decodeRealAsString is set to true and decodeRealAsDouble is either set to true or left blank, an error message is displayed.
Set decodeRealAsString to true to prevent the conversion of real numbers to scientific notation.
When the jsonString input parameter containing duplicate keys is validated against the jsonDocumentTypeName with strict set to true in the pub.json:jsonStringToDocument service, the transformation might fail even when the pub.json.schema:validate service successfully validates the same jsonString.
When strict=true, the validation of a JSON document against the JSON document type happens before transformation, and the validation exception, if any, contains the first error message, which is the result of the pub.json.schema:validate service execution. The validation errors from the pub.json.schema:validate service, if any, can be one or more in the service output. However, only the first error message is displayed in the pub.json:jsonStringToDocument service exception.
When you validate a JSON document against the JSON document type, the format property in the JSON document type is ignored during transformation. Therefore, the value passed is retained in the same format even after the successful transformation.