Hive学习(14)json解析get_json_object()函数

一、语法

目的:在一个标准JSON字符串中,按照指定方式抽取指定的字符串。

string get_json_object(string <json>, string <path>)

参数说明

  1. json:必填。STRING类型。标准的JSON格式对象,格式为{Key:Value, Key:Value,...}。如果遇到英文双引号("),需要用两个反斜杠(\)进行转义。如果遇到英文单引号('),需要用一个反斜杠(\)进行转义。
  2. path:必填。STRING类型。表示在json中的path,以$开头。
  3. $:表示根节点。
  4. .或['']:表示子节点。
  5. *:返回整个数组。

二、例:在数据表test中有一列jsonData,其数据如下:

复制代码
jsonData = '{
	"ID":121,
	"message":{
		"name":"Asher",
		"location":[{"county":"浦东","city":"上海"},
					{"county":"西直门","city":"北京"}]
	}	
}'
  1. 提取jsonData第一层数据ID

    select get_json_object(jsonData,'$.ID') from test

    --输出

    121

  2. 提取jsonData第二层数据name

    select get_json_object(jsonData,'$.message.name') from test

    --输出

    Asher

  3. 提取jsonData第二层数据location的第一项

    select get_json_object(jsonData,'$.message.location[0]') from test

    --输出

    {"county":"浦东","city":"上海"}

  4. 提取jsonData第二层数据location的第一项的city

    select get_json_object(jsonData,'$.message.location[0].city') from test

    --输出

    上海

5.提取jsonData第三层数据city

复制代码
select get_json_object(jsonData,'$.message.location.city') from test

--输出
>["上海","北京"]

码字不易,喜欢请点赞,谢谢!!!😊

参考:

https://blog.csdn.net/Asher117/article/details/107984650

https://help.aliyun.com/zh/maxcompute/user-guide/get-json-object

相关推荐
棒棒的皮皮2 分钟前
【深度学习】YOLO学习教程汇总
深度学习·学习·yolo·计算机视觉
詩不诉卿17 分钟前
Zephyr学习之spi flash驱动记录(w25q128)
学习
归去来?22 分钟前
记录一次从https接口提取25G大文件csv并落表的经历
大数据·数据仓库·hive·python·网络协议·5g·https
yanyu-yaya1 小时前
速学兼复习之vue3章节3
前端·javascript·vue.js·学习·前端框架
沉默-_-1 小时前
微信小程序网络请求 wx.request 详解
网络·学习·微信小程序·小程序
嗯嗯=2 小时前
STM32单片机学习篇5
stm32·单片机·学习
头疼的程序员2 小时前
计算机网络:自顶向下方法(第七版)第二章 学习分享(二)
学习·计算机网络
沉默-_-3 小时前
微信小程序页面配置详解
学习·微信小程序·apache·微信开发者工具
北京云帆互联科技3 小时前
云帆学习考试系统更新说明v8.8.0
学习·考试系统·高校考试系统
Quintus五等升3 小时前
深度学习③|分类任务—AlexNet
人工智能·经验分享·深度学习·神经网络·学习·机器学习·cnn