1、json解析格式的时候失败的时候检查格式问题。
注意: 后面的value如果是json的话,外层{}的外面不需要再有""
--处理前的代码
select line,get_json_object(line,'$.ext')
from (select '{"ext":"{"isNeedToMigu":"0"}"}' as line) a
;
因为格式问题,所以解析json失败,代码结果:

--处理后的代码
select line,line_new,get_json_object(line_new,'$.ext')
from (select line,regexp_replace(regexp_replace(line,'\\}"','\\}'),'\\"\\{','\\{') line_new
from (select '{"ext":"{"isNeedToMigu":"0"}"}' as line) a
) a
处理后的json解析代码执行结果:


2、复杂的原始json数据(json格式有误,导致正常解析json函数报错,需要做预处理)
- 准备原始json
--原始json
{
"accountInfoList":[{
"accountName":"17876994298","accountType":2,"appID":"108","ext":{
"userNumber":"8617876994298"}}],"ext":{
"isNeedToMigu":"0"

本文介绍了如何处理不符合标准格式的JSON数据,并提供了详细的SQL预处理及解析案例,包括单个JSON对象和JSON数组的处理。
最低0.47元/天 解锁文章
8834





