JSONEncode
(Engine-Level Function)
Description: | Converts any given VTScada value into a JSON string using UTF-8 encoding. |
Returns: | Text or Stream |
Usage: | Script only. |
Function Groups: | String and Buffer |
Related to: | JSONParse | Pack |
Format: | JSONEncode(InputValue[, PrettyPrint, Alphabetical, Indent, StreamVar]) |
Parameters: |
InputValue |
Required. Any value to be encoded as JSON. Text is expected to use UTF-8 encoding. |
PrettyPrint |
Optional Boolean. If TRUE, the output will have white space and line breaks added for presentation. Defaults to FALSE. |
Alphabetical |
Optional Boolean. If TRUE, dictionaries will be listed alphabetically. If FALSE, dictionaries will be listed chronologically. Defaults to FALSE. |
Indent |
Optional numeric. Ignored if PrettyPrint is FALSE. Sets the number of spaces to indent the encoding when PrettyPrint is TRUE. |
StreamVar |
Optional. If a valid stream is provided, the JSON encoded string will be appended to that stream and returned. The default is for JSONEncode to return a text string. |
Comments: |
VTScada value types that do not have a string or numeric representation, and are not dictionaries, arrays or structures, will be represented as JSON null. Arrays of up to three dimensions are supported. |
Example:
< {============================== JSONEncodeSample ===========================} { Example code to demonstrate JSONEncode(). } {===========================================================================} JSONEncodeSample [ Protected Input { Input dictionary }; Protected JSONResult { Input encoded as JSON }; Protected PrettyPrintedResult { Pretty printed JSON result }; ] Main [ If Watch(1); [ Input = Dictionary(); Input["Values" ] = New(3); Input["Values" ][0] = 10; Input["Values" ][1] = 20; Input["Values" ][2] = 30; Input["Timestamp"] = "2017-01-02T03:24:19Z"; JSONResult = JSONEncode(Input); PrettyPrintedResult = JSONEncode(Input, TRUE); ] ] { End of JSON_EncodeSample } >
JSONResult will be the following:
{"Values":[10,20,30],"Timestamp":"2017-01-02T03:24:19Z"}
PrettyPrintedResult will be the following:
{ "Values": [ 10, 20, 30 ], "Timestamp": "2017-01-02T03:24:19Z" }