反馈已提交

网络繁忙

解析并关联多个JSON数组字段

  • 文档创建者:Wendy123456
  • 历史版本:3
  • 最近更新:Wendy123456 于 2023-09-20
  • 1. 概述

    1.1 应用场景

    用户的 JSON 数据中包含多个数组字段,如下图所示:

    1695111552508285.png

    希望解析数组字段,且解析后的字段一一对应。如下图所示:

    1695111694348066.png

    1.2 实现思路

    「JSON 解析」算子中,选择要解析的 JSON 字段后,修改 JSON 路径。

    1.3 任务展示

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「解析并关联多个JSON数组字段」。

    2. 示例

    2.1 获取 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

    40.png

    2.2 解析数据

    拖入「JSON 解析」算子,解析 JSON 数据。

    1)选择源字段为 json,JSON 节点选择 sum、fields。

    1695173420139856.png

    此时点击数据预览效果如下图所示:

    1695112840997492.png

    解析后的数据为数组格式。我们需要修改 JSON 路径,解析数组字段,使得解析后的字段一一对应。

    2)JSON 路径修改如下图所示:

    1695112999714386.png

    JSON 表达式
    说明
    [0][*][0]:表示访问数组中的第一个元素。在 JSON 数组中,索引通常从 0 开始,所以 [0] 表示访问数组中的第一个元素

    [*]:表示通配符,用于表示匹配数组中的所有元素,即匹配当前位置处的数组的所有元素

    [0][*] 表达式的含义是:访问 JSON 数组中的第一个元素,并获取该元素的所有子元素。这通常在嵌套的 JSON 结构中使用,以获取特定元素的子元素集合

    JSON 路径更多介绍请参见:https://github.com/json-path/JsonPath

    点击数据预览,效果如下图所示:

    1695174841805164.png

    3)用户根据实际情况,继续数据进行处理或输出。


    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持