odphotoshop SQLjson对象的问题
1.如何获取多个json数组中嵌套的对象集合?
例如一个json就是一个界面,有多个shop;一个shop有多个product;每个product都有一个title。我们该如何获取所有shop的所有product的title呢?
odps中get_json_object()可以解决这个问题:
get_json_object(json,'$.shop[*].product[*].title')
但上述代码返回的是一个数组型的字符串[xxx,xxx,xxx]。这就需要探讨第二个问题了
2.如何将json数组变成数组呢?
odps同样也提供了一个函数 from_json()
-
from_json(
-
get_json_object(json,'$.shop[*].product[*].title'),
-
'array<string>') -- 变换json格式变成数组形式
通过上述代码可以将返回的数组型字符串变成字符串类型数组,后面可以再用lateral view展开。
但是这会有个问题,如果该json数组里只有一个对象,则会无法解析!按理来说数组可以仅仅只拥有一个元素,这是因为它在识别json数组时,如果只有一个数组元素,则会去掉json数组外层的中括号 '[]',导致from_json函数解析失效。
那我们正常来说就是存在着json数组里有不确定个的元素,怎么解决这个解析失效的问题呢?可以试试以下的代码:
-
from_json(
-
concat('[',
-
trim(
-
get_json_object(note,'$.images_list[*]')
-
,'[]') -- 统一形式,去掉字符串两边括号,有些json数组中就一个对象,解析出来的字符串缺少'[]',导致from_json函数无法解析
-
,']') -- 再统一格式将括号'[]'加回来
-
,'array<string>') -- 变换json格式变成数组形式)
-
as images_list
先解析出来json对象,再统一去除中括号,然后再将中括号添回来,最后通过from_json函数进行转换,这样我们就可以统筹所有的情况了!
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfkejch
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01