在本关联学习路径中,我们将创建一个链,演示如何将简单的 JSON 数据集转换为 CSV。此外,我们还将探讨如何遍历 JSON 数据集并根据数据中的值进行筛选。
| 主要学习目标 | JSON 连接器功能 |
| 次要学习目标 |
表格转换高级查询命令 分组迭代 |
| 先决条件 | 配置 JSON 连接器连接 |
| 支持模板 | CLP | 访问 JSON 数据 |
步骤 1:创建链
- 添加新链
- 命名链 CLP | 访问 JSON 数据
- 创建链变量:
- 在“链式变量”下,单击加号
- 拯救链条
步骤 2:检索 JSON 数据
我们使用 HTTP 连接器从 Web 位置以 JSON 格式检索与人员统计相关的数据。
- 从 HTTP 连接器向起始节点添加 GET 命令
- 使用以下方式配置命令:
| 姓名 | 获取 - 所有员工 |
| 用户名 | <leave blank> |
| 密码 | <leave blank> |
| CA证书 | <leave blank> |
| 证书 | <leave blank> |
| 证书私钥 | <leave blank> |
| 显示回复 | 已核取 |
| 网址 | cv-JSON-Employee 链式变量 |
| 查询字符串 | <leave blank> |
| 内容类型 | application/json |
| 回复 | <leave blank> |
- 保存命令
步骤 3:将 JSON 转换为 CSV
使用 JSON 连接器将 JSON 数据集转换为 CSV 格式。在此步骤中,仅从 JSON 数组中选择员工 ID 和国家/地区字段。理解
JSON数据集的模式非常重要
。可以使用文件实用工具连接器中的“列出文件内容”命令来可视化架构。您还可以将架构添加到 Get 命令的 Response 字段中,以便于引用。以下是员工数据 JSON 的结构:
模式:
[
{
"emp_id": "26-4992011",
"user_name": "apostle0",
"first_name": "Audi",
"last_name": "Postle",
"job_title": "首席设计工程师",
"department": "市场部",
"city": "夏延",
"country": "美国",
"currency": "美元",
"hire_date": "2000年8月30日",
"fte": 1,
"termed": false
}
]
- 将 数组添加到 CSV 命令,从 JSON 连接器 添加到链中。
- 将起始节点(GET - 所有员工)连接到 数组到 CSV 命令。
- 命令名称: 数组到 CSV - 所有员工。
- 在 JSON 数据 参数中,选择 GET - 所有员工 命令的 响应 输出。
- 将 输入文本、 根路径和 过滤器 参数留空。
- 将 多值分隔符 参数保留为逗号 (,)。
- 勾选 预览结果 选项。
- “列”部分用于指定要从 JSON 数组中提取哪些元素到列式(CSV)数据集。单击 添加 按钮一次,即可添加一列。
- 在第一列中,输入 emp_id 作为列名,输入 .emp_id 作为 JSONPath 参数。
- ❗ 请务必在 JSONPath 参数中的 emp_id 前加上点号 (.)。
- 在第二列中,输入 country 作为列名称,输入 .country 作为 JSONPath 参数。
- 选择 逗号 作为 分隔符 参数。
- 在第一列中,输入 emp_id 作为列名,输入 .emp_id 作为 JSONPath 参数。
- 保存命令
第四步:获取数据中唯一的国家/地区列表
使用表格转换连接器的高级查询命令,通过简单的 Select Distinct 语句获取数据中唯一的国家/地区集合。稍后,我们将使用此列表按国家/地区分别检索员工信息。
- 将 高级查询 命令从 表格转换 连接器添加到链中。
- 将 数组连接到 CSV - 所有员工 命令到 高级查询 命令。
- 命令名称: 高级查询 - 国家/地区。
- “表格”部分允许使用一个或多个分隔数据集来创建表格,并可针对这些表格编写 SQL 语句。系统会动态生成包含指定表的 SQLite 数据库,无需安装其他软件。
- 在 文件 字段中,指定 转换后的文件 输出,从 数组到 CSV - 所有员工 命令。
- 在 “表名称 ”参数中输入 “国家/地区 ” 。将对该表执行指定的查询。
- 在“查询”参数中,输入以下内容:
从国家/地区中选择不同的国家/地区
- 请为 输入分隔符 和 输出分隔符 [] 参数指定逗号 。
- 检查 预览结果 参数
- 保存命令。
步骤 5:根据国家/地区列表创建 JSON 数组
我们使用 JSON 连接器中的 CSV 到 JSON 命令将唯一的国家/地区列表转换为 JSON 数组。命令组可以遍历此数组中的每个元素。
- 将 CSV 转 JSON 命令从 JSON 连接器 添加到链中。
- 将 高级查询 - 国家 命令连接到 CSV 转 JSON 命令。
- 使用以下命令配置命令:
| 姓名 | CSV 转 JSON - 国家/地区 |
| 输入文件 | 结果高级查询 - 国家/地区 命令的输出 |
| 分隔符号 | 逗号 (,) |
- 保存命令
步骤 6:添加命令组
在链中添加命令组,以便对高级查询步骤中确定的每个国家/地区进行迭代。
- 向链中添加一个 命令组 。
- 将 CSV 转 JSON - 国家 命令连接到 In 命令组的 [] 部分。
- 单击命令组,然后选择吸管图标,将命令颜色更改为 橙色。
- 组名: 活跃员工。
- 启用迭代选项卡下的 迭代 切换,并从 CSV 转 JSON - 国家 命令中选择 JSON 文件 输出。
- 保存命令组。
步骤 7:按国家/地区筛选员工的 JSON 数据
将 JSON 数据集转换为 CSV,同时仅筛选当前迭代中正在处理的国家的员工记录。这一步骤突出了两个强大的功能——循环或迭代的功能以及对 JSON 转换过程应用过滤器的功能。了解这些能力可以增强一个人开发强大、高效的供应链的能力。
复制之前配置的数组到 CSV 命令,此步骤的配置基本与之前配置相同,但以下另有说明。
- 将 数组复制到 CSV - 所有员工 命令。
- 将 组开始 从命令组连接到 数组到 CSV - 所有员工(复制)命令。
- 编辑命令。
- 命令名称: 数组到 CSV - 按国家/地区划分的员工。
- 在“筛选器”参数中,输入以下内容:
?(@.country == "<JSON FILE ITERATION>")
-
- 双等号 (==) 前的 空格和 等号后的空格是 必需的。
- <JSON FILE ITERATION>应将 替换为 JSON 文件迭代 ,位于变量窗格的 组迭代器 下。
- 添加 JSON 文件迭代时,单击变量气泡并添加从 JSON 变量获取值的转换。
- 在变量转换的“值”参数中,输入 country ,然后按 Enter 键。请记住, JSON区分大小写。
- 编辑 emp_id 列,使其包含 列名 和 employee_id。请勿更改JSONPath。
- 命令生成的列名不需要与 JSON 数组键匹配。
- 在命令中添加 10 列,并按以下方式配置:
| 列名称 | JSONPath |
| 用户名 | .user_name |
| 名 | 。名 |
| 姓 | 。姓 |
| 所有权 | 。职称 |
| 部门 | 。部门 |
| 城市 | 。城市 |
| 货币 | 。货币 |
| 聘用日期 | .hire_date |
| 全职员工 | .fte |
| 终止 | .termed |
- 保存命令。
步骤 8:测试练习
现在链式流程已完成,请测试结果。
- 发布 链。
- 单击 执行 ,然后选择 运行链。
- 链完成后,单击 Array to CSV - Employees by Country 节点。
- 请注意,该迭代运行了五 (5) 次。
- 选择每个迭代值,然后单击 输入 选项卡。确认 过滤器 与下表相符。
- 选择迭代 5,然后单击 日志 选项卡。请确认数据预览与下图一致。