用户的 JSON 数据中包含多个数组字段,如下图所示:
希望解析数组字段,且解析后的字段一一对应。如下图所示:
「JSON 解析」算子中,选择要解析的 JSON 字段后,修改 JSON 路径。
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「解析并关联多个JSON数组字段」。
用户实际环境中 JSON 数据的来源多样,本示例直接创建一个包含数组的 JSON 数据。
1)新建定时任务,拖入「数据转换」节点,进入「数据转换」节点。
2)拖入「Spark SQL」算子,模拟用户场景,创建包含数组的 JSON 数据。如下图所示:
SQL 语句如下所示:
select '{ "header": { "desc": "success", "failures": [], "oprs": 1, "succ": 1, "oprtime": 0, "quota": 1, "rquota": 200000000, "status": 0, "traceid": "a9874ba8-b3a0-11ed-8323-97b36044f232" }, "body": { "data": [ { "result": { "total": 20, "pageSum": [ [ 386, 130, 279, 212, 189, 41.98, 263, 71.06, 230, 8.61, "--", "--" ], [], [] ], "timeSpan": [ "2023/03/01 - 2023/03/02" ], "sum": [ [ 364, 200, 249, 212, 82, 41.98, 253, 71.06, 220, 1.61, "--", "--" ], [] ], "fields": [ "aa", "bb", "cc", "dd", "ee", "ff", "hh", "ii", "er", "ef", "qw", "dg" ] } } ], "expand": {} }}' as json
拖入「JSON 解析」算子,解析 JSON 数据。
1)选择源字段为 json,JSON 节点选择 sum、fields。
此时点击「数据预览」效果如下图所示:
解析后的数据为数组格式。我们需要修改 JSON 路径,解析数组字段,使得解析后的字段一一对应。
2)JSON 路径修改如下图所示:
[*]:表示通配符,用于表示匹配数组中的所有元素,即匹配当前位置处的数组的所有元素
[0][*] 表达式的含义是:访问 JSON 数组中的第一个元素,并获取该元素的所有子元素。这通常在嵌套的 JSON 结构中使用,以获取特定元素的子元素集合
JSON 路径更多介绍请参见:https://github.com/json-path/JsonPath
点击「数据预览」,效果如下图所示:
3)用户根据实际情况,继续数据进行处理或输出。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy