HIVE实战处理(十) hive函数json_tuple、get_json_object中遇到的json格式不符合规范问题

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

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函数报错,需要做预处理)

  1. 准备原始json
--原始json
{
   
   "accountInfoList":[{
   
   "accountName":"17876994298","accountType":2,"appID":"108","ext":{
   
   "userNumber":"8617876994298"}}],"ext":{
   
   "isNeedToMigu":"0"
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值