编码 JSON - 沙盒

Encode JSON(编码 JSON)动作将解析 JSON 模板,并将识别出的变量填充至输出 JSON 字符串。

编码 JSON 动作现为基本运行时产品的一部分

从 18.2.3 版本开始,编码 JSON 动作现为基本运行时产品的一部分。

  • 有关动作的基本运行时版本的信息,请参见编码 JSON

对于版本 18.2.2 及更早版本,此动作是技术预览扩展(又称沙盒软件包)的一部分。

参数描述

参数 描述
JSON Template(JSON 模板) 将生成要编码的变量的 JSON 结构。JSON 模板包含可显示变量及其类型的示例值。每个 JSON 变量元素包含以下内容:
  • Sample Value(示例值)- deviceWISE 使用示例值来确定变量类型。
  • Map variable(映射变量)- 与 JSON 模板值相对应的输入变量。此变量类型由模板中定义的 Sample Value(示例值)确定。
  • Map variable size(映射变量大小)- 数组的实际大小。此大小必须大于 0 且小于高级属性 Maximum Array Size(最大数组大小)。

值数组通过将值括在 [ ] 字符内来表示。如果 JSON 对象包含值数组,将生成另一个变量以指定大小。

单击多行输入图标,您可以查看或编辑 JSON 模板。

选择 Use Advanced Properties(使用高级属性)可查看高级属性。下表描述了高级属性参数:

参数 描述
Maximum String Size(最大字符串大小) 数组中字符串的最大字符串大小。默认的 Maximum String Size(最大字符串大小)为 256。值域介于 10 和 1024 之间。
Maximum Array Size(最大数组大小) 数组的最大大小。默认的 Maximum Array Size(最大数组大小)为 256。值域介于 1 和 256 之间。
Structure Delimiter Character(结构分隔符字符) 在结构名称和结构中的变量之间用于分隔的默认字符为 # 字符。此参数可用于将此分隔符更改为另一个字符。
Array Size Identifier(数组大小标识符) 追加至所有数组大小变量末尾的字符串。默认以“大小”作为 Array Size Identifier(数组大小标识符),但可在名称冲突时或根据首选项进行更改。

JSON 结构中的每个成员都必须在运行时表示为唯一变量。将创建唯一名称来标识结构中的每个成员。该名称由结构名称组成,后接分隔符,再后接成员名称。

输入选项卡

Input(输入)选项卡包含从 JSON Template(JSON 模板)解析的所有变量。

参数 描述
Input Map Variables(输入映射变量) 具有值的 JSON 对象从 JSON Template(JSON 模板)识别出来,并将作为输入变量添加。

输出选项卡

Output(输出)选项卡包含 JSON Output(JSON 输出)字符串以及用于调试的 resultStatusresultMessage

参数 描述
JSON Output(JSON 输出) JSON 字符串,是使用 JSON 模板和 Input(输入)选项卡变量中的值进行编码的结果。
resultStatus INT4 变量,其中将包含此动作的完成状况。值为零表示 JSON Input(JSON 输入)值已成功解析,并与 JSON Template(JSON 模板)字段中识别出的模板匹配。非零值表示动作未成功。
resultMessage 由 64 个字符组成的字符串变量,当 resultStatus 状态不为零时,将提供更多信息。
注意事项和限制
  • 当前不支持模板中的 NULL 值。如果存在 NULL 值,忽略该值。
  • 浮点数不得为整数,例如“1.0”,否则将注册为整数。用户必须输入小数值,例如“1.9”,所用的库对此设有限制。
  • 此动作不支持嵌套过深的数组和对象,以避免导致堆栈溢出。为防止这种情况,动作将深度限制为 JSON_NESTING_LIMIT,默认情况下为 1000,但可在编译时进行更改。
  • 动作模板不支持包含零字符 '\0' 或 \u0000 的字符串。这是由于这些字符串以零结尾。
  • 此动作不正式支持 IEEE754 双精度浮点数以外的任何 double 实现方式。动作支持的浮点文本最大长度当前为 63 个字符。

示例

以下为 JSON 模板示例,其中包含多种数据类型,并包括一个名为 INSTALLED_PART 的结构的数组。
该数组包含两个元素,成员名为 partNamepartSerialNumberpartStatus 和 timestamp。 

JSON 模板
{ "INSTALLED_PART": [{ "partName": "HEADLIGHT PART", "partSerialNumber": "PART1", "partStatus": "1", "timestamp": "2013-10-02 14:34:31.537" }, { "partName": "TEST PART", "partSerialNumber": "PART2", "partStatus": "1", "timestamp": "2013-10-0214:34:34.056" } ], "PRODUCT_TYPE": "FRAME", "PROCESS_POINT_ID": "PP10483", "PRODUCT_ID": "5KBRL5898EB801655", "TEXT_ID": "0410", "TIMESTAMP": "2013-10-02 13:22:42" }

以下是与上述 JSON 模板对应的 Input(输入)选项卡。Maximum String Size(最大字符串大小)使用的默认值为 256。# 字符用于分隔结构名称和结构成员名称。