本文为您介绍 JSON解析 相关问题。
解析 JSON 数据前,建议查看:解析 JSON 数据 内容。
问题描述:
报错:JSON节点获取失败
原因分析:
用户数据中包含转义字符\
解决方案:
使用转义字符再转义反斜杠。
JSON修改为:
{ "name": 1, "name2": "\\" }
报错:com.fr.dp.exception.FineDPException: Get json path fields error. - Not Json format! - Unrecognized token 'TRUE': was
expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false') at [Source: (ByteArrayInputStream); line: 1, column: 14]
用户的 JSON 数据:
select '{"name":TRUE}' as a
json 数据中,boolean 值类型应为小写的 true/false
select '{"name":true}' as a
报错: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]
用户JSON数据:
select '{ "name": 1, "name2": "\n" }' as a
转义字符个数不对。
select '{"name": 1,"name2": "\\n" }' as a
json可以正常获取到节点,但是预览报错:Use bracket notion ['my prop'] if your property contains blank characters
fdl 中 json 解析后的字段名称英文字母中间不允许存在空格。可使用 sparksql 将空格替换成其他字符,比如_。
简道云第一行数据,子表单内容全不填的话,json 结构不完整,会显示“[]”,导致 json 解析不出来。
注:4.1.6.2 及之后版本,可以通过粘贴JSON文本的方式修改选择节点的内容,以防止出现上游有多行 JSON 文本流进时,因为第一行的JSON属性较少,导致其他json属性无法直接选择的情况。详情请参见:JSON解析算子功能说明 2.3.2节内容。
方案一:手动添加 jsonpath ,获取数据。
方案二:手动将子表单为空的数据结构补全:
示例:
1)使用 spark sql 算子将子表单 info 为空的 json 数据,手动补全结构。
select if(info="[]",'[ { "_id": "", "name": "", "type": "", "product": "", "sale": "" }]', info) as infotext from $[简道云输入]
最终效果:
问题描述
JSON解析配置成功后,重新再打开,发现解析配置中的「JSON数据来源」丢失,需要重新选择。
原因分析
JSON解析获取API数据源的时候,API返回数据超过默认的超时时间,所以JSON解析获取前置数据源失败。
解决方案
请求时间默认为 10秒,若用户的数据量较大,接口请求时间较长,4.0.13 以及之后的版本可以在FDL的 Header 内使用 FDLTimeout 字段设置超时时间。
该参数参数值需要写入正整数,如下图所示:
注:若数据量较大,JSON 格式数据建议取消勾选「将解析后的JSON数据展开为二维表」,否则会增加加载响应时间。
解析包含()的字段时,会提示:Json解析结果行数不匹配
如果 jsonpath 包含(),可以修改下 jsonpath 的写法,改法如下:
$..累计动销件数(简道云) -> $..['累计动销件数(简道云)']
使用方括号和单引号将包含英文括号的部分包起来即可。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙