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

相关推荐
我命由我123456 分钟前
开发中的英语积累 P25:Axis、Stroke、Corner、Interceptor、Declared、Internal
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
消失的旧时光-194312 分钟前
Freezed + json_serializable:DTO / Domain 分层与不可变模型(入门到落地)-----上篇
flutter·json·dto·domain
linweidong16 分钟前
hive sql行转列,列转行sql的实例
hive·hadoop·sql
只想早点退休的90后17 分钟前
sql面试题分享
数据库·sql
扑火的小飞蛾18 分钟前
【Ansible学习笔记01】 批量执行 shell 命令
笔记·学习·ansible
d111111111d22 分钟前
STM32 USART接收中断:如何判断数据接收完成?
stm32·单片机·嵌入式硬件·学习·模块测试
报错小能手29 分钟前
线程池学习(一) 理解操作系统 进程 线程 协程及上下文切换
学习
pps-key32 分钟前
麻雀AI:一个能自己学习交易的智能体
人工智能·学习
YangYang9YangYan1 小时前
2026年大专大数据与会计专业核心证书推荐
大数据·学习·数据分析
炽烈小老头1 小时前
【 每天学习一点算法 2026/01/04】打家劫舍
学习·算法