反馈已提交

网络繁忙

JSON解析算子功能说明

  • 文档创建者:Wendy123456
  • 历史版本:16
  • 最近更新:Wendy123456 于 2024-03-15
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能变动
    3.5.1「数据转换」节点新增算子「JSON 解析」;支持将 JSON 结构的数据输出为行列格式
    4.1.1将 API body 的响应字段名称从 default 改为 responseBody
    4.1.6.2
    • 支持同时解析一个JSON源字段的数组部分和非数组部分

    • 所有生成JsonPath默认从根节点开始,生成完整的绝对路径,用户可手动修改

    • 在「选择JSON节点」时,用户可以通过粘贴JSON文本的方式修改选择节点的内容,以防止出现上游有多行 JSON 文本流进时,因为第一行的JSON属性较少,导致其他json属性无法直接选择的情况

    • JSON解析生成同名字段进行提示

    • JSON解析支持同时解析多个字段,减少「简道云输入」多个复杂字段的解析成本,在「JSON解析」中添加解析多个字段的能力。

    1.2 应用场景

    通过 API 取数,或者从一些非关系型、关系型数据库里读取数据时,存在取到的数据包含 JSON 格式数据的情况。

    而且许多情况下,JSON 格式的数据并不标准,并不能直接映射成二维表数据使用。

    「JSON 解析」算子可以解析 JSON 结构的数据,输出行列格式的数据。

    1.3 功能简介

    「JSON 解析」算子通过获取上游输出的 JSON 数据,将其自定义解析成需要的字段并输出给下游。

    示例:

    例如某列 JSON 为:

    [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "price": 8.99, "isbn": "0-553-21311-3" }, { "category": "fiction", "author": "J.R.R. Tolkien", "title": "The Lord of the Rings", "price": 22.99, "isbn": "0-395-19323-5" }]

    「JSON 解析」算子解析后,为:

    1690770673461702.png

    注:JSON 解析时,不支持同时提取不同层级的字段并扩展,用户可以使用多个 JSON 解析算子进行多个层级的解析,详情参见本文 2.3.4 节。

    2. 功能说明

    「JSON 解析」算子配置界面如下图所示:

    1690770798426961.png

    2.1 选择源字段

    将直接获取的 JSON 格式数据或者从来源表中选择 JSON 格式数据合并到下拉框可选项中。

    4.1.6.2 及之后版本,JSON解析支持同时解析多个字段,减少「简道云输入」多个复杂字段的解析成本,在「JSON解析」中添加解析多个字段的能力。

    在源字段选择多个字段后,即可在「选择JSON节点」中同时解析多个字段,如下图所示:

    如果上游为「API 输入」算子,一般默认选择  responseBody。如下图所示:

    若上游为「DB表输入」或者其他输入算子,则可以选择需要解析的 JSON 来源字段。如下图所示:

    21.png

    2.2 解析后保留所有上游输出字段

    未勾选该按钮,解析后的结果:只保留所选源字段解析后的数据。

    以 JSON解析算子典型示例 文档中的示例为例:

    27.png

    2.3 解析 JSON 数据

    2.3.1 说明

    选择 JSON 节点,即可解析:

    所有生成JsonPath默认从根节点开始,生成完整的绝对路径,用户可手动修改。

    注1:json 解析的时候建议选择最开始的节点,此时为绝对路径下的解析,否则直接勾选指定字段,使用相对路径解析,数据解析结果可能会有错误。

    注2:可使用多个「JSON解析」算子解析「嵌套JSON」数据。

    可手动编辑、删除字段。如下图所示:

    2.3.2 JSON 数据有多层级且不同层级存在同名字段

    4.1.6.2 及之后版本,当 JSON 数据存在多层且有同名字段时,会自动给重名字段增加后缀,如下图所示:

    2.3.3 多个 JSON 解析算子解析不同字段但解析后的字段同名

    示例:

    注:4.1.6.2 及之后版本不会出现此问题。

    使用两个「JSON解析」算子,分别解析两个不同字段。但选择JSON节点时,两个JSON解析算子选择的字段名相同,都为 name 。如下图所示:

    24.png

    此场景下,若有多个JSON解析算子,解析后字段名称不能相同,需要修改解析后字段名称。否则,后面的同名字段会覆盖前面的同名字段。如下图所示:

    25.png

    2.3.4 解析不同层级的字段

    示例:

    4.1.6.2 及之后版本,支持同时解析一个 JSON 源字段的数组部分和非数组部分。

    例如想要解析在不同增层级中的 class 和 name 字段,则可直接选择对应的字段,即可同时解析一个数据源的数组和非数组部分,如下图所示:

    4.1.6.2 之前的版本则无法直接同时解析一个JSON源字段的数组部分和非数组部分。

    使用JSON解析」算子解析子表单数据时,希望解析出在不同层级中的 level 和 name 字段,如下图所示解析时,将报错:

    json 解析结果行数不匹配

    3.png

    原因是暂不支持:JSON 解析时,同时提取不同层级的字段并扩展。

    解决方案:

    可分两次进行解析,先解析出同层级的 level 和 department 字段,第二次解析出 department 下的 name 字段。

    1697620620326084.png

    2.3.5 解析全量字段数据

    在「选择JSON节点」时,用户可以通过粘贴JSON文本的方式修改选择节点的内容,以防止出现上游有多行 JSON 文本流进时,因为第一行的JSON属性较少,导致其他json属性无法直接选择的情况。

    例如,若选择节点处缺少需要选择的 JSON 属性,则可以手动粘贴包含需要选择的 JSON 属性文本,如下图所示:

    然后即可在节点中选择想要解析的字段。

    3. 应用示例

    4. 注意事项

    4.1 JSON数据来源丢失

    问题描述

    JSON解析配置成功后,重新再打开,发现解析配置中的「JSON数据来源」丢失,需要重新选择。

    原因分析

    JSON解析获取API数据源的时候,API返回数据超过默认的超时时间,所以JSON解析获取前置数据源失败。

    解决方案

    请求时间默认为 10秒,若用户的数据量较大,接口请求时间较长,4.0.13 以及之后的版本可以在FDL的 Header 内使用 FDLTimeout 字段设置超时时间。

    该参数参数值需要写入正整数,如下图所示:

    注:若数据量较大,JSON 格式数据建议取消勾选「将解析后的JSON数据展开为二维表」,否则会增加加载响应时间。

    20.png

    4.2 解析包含英文括号的字段时,提示行数不匹配

    问题描述:

    解析包含()的字段时,会提示:Json解析结果行数不匹配

    解决方案:

    如果 jsonpath 包含(),可以修改下 jsonpath 的写法,改法如下:

    $..累计动销件数(简道云)    ->     $..['累计动销件数(简道云)']

    使用方括号和单引号将包含英文括号的部分包起来即可。




    附件列表


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

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

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

    不再提示

    10s后关闭

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