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. Value metadata does not get included in JSON encodings. Accordingly, when you encode a dictionary with a root value, only the root value gets encoded |
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" }