编码 JSON
Encode JSON(编码 JSON)动作将解析 JSON 模板,并将识别出的变量填充至输出 JSON 字符串。
编码 JSON 动作现为基本运行时的一部分。
从 18.2.3 版本开始,编码 JSON 动作现为基本运行时产品的一部分。
对于版本 18.2.2 及更早版本,此动作是技术预览扩展(又称沙盒软件包)的一部分。
- 有关动作沙盒版本的信息,请参见编码 JSON - 沙盒。
- 有关获取和安装扩展的信息,请参见技术预览扩展。
参数描述
参数 | 描述 |
---|---|
JSON Template(JSON 模板) | 将生成要编码的变量的 JSON 结构。JSON 模板包含可显示变量及其类型的示例值。每个 JSON 变量元素包含以下内容:
值数组通过将值括在 [ ] 字符内来表示。如果 JSON 对象包含值数组,将生成另一个变量以指定大小。 |
单击多行输入图标 ,您可以查看或编辑 JSON 模板。
选择 Use Advanced Properties(使用高级属性)可查看高级属性。下表描述了高级属性参数:
参数 | 描述 |
---|---|
Structure Delimiter Character(s)(结构分隔符字符) | 用于分隔结构名称和结构中各项目的字符。 |
Array Current Size Append Character(s) (数组当前大小追加字符) |
将用于命名数组当前大小输入变量的字符。 |
JSON 结构中的每个成员都必须在运行时表示为唯一变量。将创建唯一名称来标识结构中的每个成员。该名称由结构名称组成,后接分隔符,再后接成员名称。
输入选项卡
Input(输入)选项卡包含从 JSON Template(JSON 模板)解析的所有变量。
参数 | 描述 |
---|---|
Input Map Variables(输入映射变量) | 具有值的 JSON 对象从 JSON Template(JSON 模板)识别出来,并将作为输入变量添加。 |
输出选项卡
参数 | 描述 |
---|---|
JSON Output(JSON 输出) | JSON 字符串,是使用 JSON 模板和 Input(输入)选项卡变量中的值进行编码的结果。 |
Result Status(结果状态) | INT4 变量,其中将包含此动作的完成状况。值为零表示 JSON Input(JSON 输入)值已成功解析,并与 JSON Template(JSON 模板)字段中识别出的模板匹配。非零值表示动作未成功。 |
Result Message(结果消息) | 由 64 个字符组成的字符串变量,当 resultStatus 状态不为零时,将提供更多信息。 |
注意事项和限制
- 当前不支持模板中的 NULL 值。如果存在 NULL 值,忽略该值。
- 浮点数不得为整数,例如“1.0”,否则将注册为整数。用户必须输入小数值,例如“1.9”,所用的库对此设有限制。
- 此动作不支持嵌套过深的数组和对象,以避免导致堆栈溢出。为防止这种情况,动作将深度限制为 JSON_NESTING_LIMIT,默认情况下为 1000,但可在编译时进行更改。
- 动作模板不支持包含零字符 '\0' 或 \u0000 的字符串。这是由于这些字符串以零结尾。
- 此动作不正式支持 IEEE754 双精度浮点数以外的任何
double 实现方式
。动作支持的浮点文本最大长度当前为 63 个字符。
示例
以下为 JSON 模板示例,其中包含多种数据类型,并包括一个名为 INSTALLED_PART 的结构的数组。
该数组包含两个元素,成员名为 partName、partSerialNumber、partStatus 和 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(输入)选项卡。# 字符用于分隔结构名称和结构成员名称。