反馈已提交

网络繁忙

JSON解析问题排查

  • 文档创建者:Wendy123456
  • 历史版本:2
  • 最近更新:Wendy123456 于 2024-05-06
  • 1. 概述

    本文为您介绍 JSON解析 相关问题。

    解析 JSON 数据前,建议查看:解析 JSON 数据 内容。

    2. 报错及解决方案

    包含转义字符

    问题描述:

    报错:JSON节点获取失败

    1714983040936092.png

    原因分析:

    用户数据中包含转义字符\

    16.png

    解决方案:

    使用转义字符再转义反斜杠。

    JSON修改为:

    {
    "name": 1,
    "name2": "\\"  
    }

    Unrecognized token 'TRUE'

    问题描述:

    报错:com.fr.dp.exception.FineDPException: Get json path fields error. - Not Json format! - Unrecognized token 'TRUE': was 

    expecting (JSON StringNumberArrayObject or token 'null''true' or 'false') at [Source: (ByteArrayInputStream); line: 1, column: 14]

    1714983382658608.png

    原因分析:

    用户的 JSON 数据:


    select '{"name":TRUE}' as a

    json 数据中,boolean 值类型应为小写的 true/false

    解决方案:

    select '{"name":true}' as a

    Unexpected character ('"' (code 34))

    问题描述:

    报错:com.fr.dp.exception.FineDPException: Get json path fields error. - Not Json format! - Unexpected character ('"' (code 34)): 

    was expecting comma to separate Object entries at [Source: (ByteArrayInputStream); line: 3, column: 14]

    1714983559728098.png

    原因分析:

    用户JSON数据:

    select '{
    "name": 1,
    "name2": "\n"  
    }' as a

    转义字符个数不对。

    解决方案:

    select '{
    "name": 1,
    "name2": "\\n" 
    }' as a

    Use bracket notion ['my prop'] if your property contains blank characters

    问题描述:

    json可以正常获取到节点,但是预览报错:Use bracket notion ['my prop'] if your property contains blank characters

    1714983762617369.png

    20.png

    原因分析:

    fdl 中 json 解析后的字段名称英文字母中间不允许存在空格。可使用 sparksql 将空格替换成其他字符,比如_。

    简道云子表单第一行没填获取不到节点

    问题描述:

    简道云第一行数据,子表单内容全不填的话,json 结构不完整,会显示“[]”,导致 json 解析不出来。

    注:4.1.6.2 及之后版本,可以通过粘贴JSON文本的方式修改选择节点的内容,以防止出现上游有多行 JSON 文本流进时,因为第一行的JSON属性较少,导致其他json属性无法直接选择的情况。详情请参见:JSON解析算子功能说明 2.3.2节内容。

    解决方案:

    方案一:手动添加 jsonpath ,获取数据。

    方案二:手动将子表单为空的数据结构补全:

    示例:

    21.png

    1)使用 spark sql 算子将子表单 info 为空的 json 数据,手动补全结构。

    select if(info="[]",'[
    {
    "_id": "",
    "name": "",
    "type": "",
    "product": "",
    "sale": ""
    }
    ]', info) as infotext from $[简道云输入]

    最终效果:

    22.png

    JSON数据来源丢失

    问题描述

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

    原因分析

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

    解决方案

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

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

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

    24.png

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

    问题描述:

    解析包含()的字段时,会提示: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
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持