历史版本2 :JSON解析问题排查 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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