架构师中的 JSON 值
在 Architect 的 JSON 文字编辑器中,添加 JSON,这样你就可以直接设置文字值。 您也可以在 Architect 中使用表达式编辑器通过表达式添加 JSON。
Architect JSON 类型严格遵守 JSON 规则,而不是 JavaScript 对象字面量规则,这意味着必须用双引号将键和字符串值括起来。
本文专门讨论了更常用的 JSON 函数: toJSON、tojsonCollection 和 jsonParse。 有关更多 JSON 函数的帮助,请参阅 A rchitect 表达式帮助。
JSON 值
通过在表达式模式下使用 jsonParse 或 toJSON 函数,或者直接在 JSON 文字编辑器中输入 JSON 数据来设置 JSON 值。 JSON 输出值必须具有变量引用。
JSON 编辑器
例如,对于 JSON 类型变量,在 “更新数据” 操作中,选择使用 JSON 后,单击 “单击” 添加 JSON 文字值。 JSON 编辑器窗格打开。 然后,直接在编辑器中添加 JSON 数据。
有效的 JSON 类型
JSON 数据类型变量编辑器接受以下类型:
- 字符串: 被双引号包围 示例 “你好”,“{\” UnusualExample\”: \” 这个例子看起来像一个对象,但实际上是一个未解析为对象的字符串。\”}”。
- 数字 整数或十进制值 示例 0.0、1.0、25、-100。
- 布尔值: 小写,不需要引号。 价值观: 真 / 假
- 空: 没有价值的对象。
- 数组: 可以包含此列表中任何类型的值(字符串、数字、布尔值、空值、对象)。 示例 [], [1,2,3], [真, “你好”, {“a”: 真的}]。
- 对象: 可以包含此列表中任何类型的值(字符串、数字、布尔值、空值、数组)。 被双引号包围 示例 {“客户名称”: “John Doe”},{}。
考虑
- JSON 值可以是 NOT_SET。
- 当 JSON 值包含对象时,函数会在对象上查找区分大小写的属性名称。
- 您可以在 Architect 流程和脚本中创建 JSON 数据类型变量。
- 对于包含对象的 JSON 值,必须用双引号将属性键括起来。
- 您可以通过点表示法查询包含对象的 JSON 变量中的数据。 例如,通过 “flow.myjson.username” 访问表达式中 JSON 变量 “flow.myJSON” 中属性 “用户名” 的值。 如果您尝试访问包含对象值的 JSON 变量的属性,但该属性在运行时该对象中不存在,Architect 会返回 NOT_SET JSON 值。 如果您尝试访问不是对象的 JSON 值的属性,则运行时引擎会启动错误处理。
创建 json 表达式
你可以在 toJSON、tojsonCollection 和 jsonParse 的表达式中使用 JSON。
- toJSON: 使用指定的单例值创建 JSON 值。 当 Architect 转换字符串值时,它会返回带有该字符串值的 JSON 值。 如果要解析字符串值,请使用 jsonParse。
- Tojson 系列: 当项目是 Architect 从数组中的项目中克隆的 JSON 值时,将包含数组的 JSON 值转换为 JSON 值集合。
- jsonParse: 通过 JSON 解析语义将提供的字符串值解析为 JSON。 解析 JSON 字符串时,请确保在键之间使用双引号。
输入 | 输出 |
---|---|
toJSON(makeDateTime (2022, 8, 4, 0, 0, 0)) | 一个包含字符串 “2022-08-04T 00:00:00.000 Z” 的 JSON 值。 |
toJSON (“你好”) | 包含字符串 “Hello” 的 JSON 值。 |
toJSON (5) | 包含数字 5 的 JSON 值。 |
toJSON (“{\” a\”: 真的}”) | 包含 “{\” a\” 字符串的 JSON 值: 真的}”。 请记住,如果你想用对象而不是字符串创建 JSON 值,请使用 jsonParse。 |
toJSON(makeCurrency(5.25,“美元”) | 包含 {“金额” 的 JSON 对象的 JSON 值: 5.25,“代码”: “美元”}。 |
toJSON(tophoneNumber(“tel: +13178723000”)) | 一个包含 “tel: +13178723000” 字符串的 JSON 值。 |
输入 | 输出 |
---|---|
tojsonCollection(jsonParse(“[true,100]”) | 一个 JSON 集合值,其中包含两个 JSON 值项目。 第一个 JSON 值包含布尔值 true,第二个 JSON 值包含数字 100。 |
tojsonCollection (makeemptyjsonArray ( | 一个空的 JSON 集合值。 |
计数(tojsonCollection(jsonParse(“[true,100]”)) | 2 |
计数 (addItem (tojsonCollection (jsonParse (“[true, 100]”)、makeemptyJsonObject ())) | 3 |
输入 | 输出 |
---|---|
jsonParse (“\” Hello\””) | 包含字符串 “Hello” 的 JSON 值。 |
jsonParse (“[0, 1, 2]”) | 包含数组 [0, 1, 2] 的 JSON 值。 |
jsonParse (“{\” a\”: 真,\” b\”: 100,\” c\”: [真,假],\” d\”: 空}”) | 包含 {“a” 的 JSON 对象的 JSON 值: 是的,“b”: 100,“c”: [真,假],“c”: 空} |
jsonParse (toString (NOT_SET)) | 一个 NOT_SET 的 JSON 值。 |
jsonParse(“true”) | 包含布尔值 true 的 JSON 值。 |
验证
如果 JSON 文字编辑器确定文本无效,则会出现验证错误。 在某些情况下,错误包含位置信息,这表明验证在哪个字符处失败。 如果您的错误包含位置编号,请单击消息将光标移至错误处。 您可以在 JSON 文字值出现错误时进行保存,但是这样做会给流程增加验证错误并阻止您发布该流程。
向任务序列添加日期变量
以下示例介绍如何向 “更新数据” 操作添加 JSON 变量。
- 从工具箱中,展开 数据 类别,然后将 “ 更新数据” 操作拖动到任务中的所需位置。
- 在 “名 称 ” 字段中,添加一个有意义的名称来描述项目。
- 单击 添加更新语句 并选择 字符串。
- 在 变量名称 字段中,键入标签以标识任务中的变量。
- 在 “要分配的值” 字段中,从以下选项中进行选择。
- 要在文字模式下设置值,请单击 “单击” 添加 JSON 文字值。 JSON 文字编辑器打开,您可以创建和编辑格式化的 JSON。
- 要使用表达式设置值,请单击表达方式单击“添加 JSON 文字值”旁边的按钮,然后执行以下步骤之一。
- 以内联方式添加表达式。
- 点击表达并添加内联表达式。
- (可选)要添加其他变量,请单击 “添加更新语句”。