JSON_Encode

System Library

Deprecated. This is now a wrapper for JSONEncode

Description: Takes a VTScada dictionary, structure or array which may be nested, and encodes it as JSON.
Returns: Text
Usage: Script Only.
Function Groups: String and Buffer
Related to: JSONParse
Format: \System.JSON_Encode(Input[, PrettyPrint])
Parameters:
Input
Required. Any stream expression for the socket. If this isn't a socket stream, invalid is returned.
PrettyPrint
Optional Boolean. If TRUE, the output will have white space and line breaks added for presentation. Default to FALSE.
Comments:

The return value will be the input encoded as JSON. Text will be encoded as UTF-8, unless there are any sequences of bytes in the input string that cannot be represented as UTF-8, in which case the string will be substituted for JSON null.

VTScada value types that are not dictionaries, arrays or structures, and that do not have a string or numeric representation, will be represented as JSON null.

Example:

<
{============================== JSON_EncodeSample ==========================}
{ Example code to demonstrate System.JSON_Encode().                         }
{===========================================================================}
JSON_EncodeSample
[
  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 = \System.JSON_Encode(Input);
    PrettyPrintedResult = \System.JSON_Encode(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"
}