应用场景:提取以json字符串的方式存储的数据。
用法:get_json_object(expr, path)
- expr:包含格式正确的 JSON 的 STRING 表达式(或字段名)。
- path:包含格式正确的 JSON 路径的 STRING 文本。
返回值:一个STRING类型。如果找不到该对象,则返回 NULL。
示例
在数据表test中有一列 jsonData,其数据如下:
jsonData = '{
"ID":188,
"message":{
"name":"Alex",
"location":[{"county":"日本","city":"东京"},
{"county":"韩国","city":"首尔"}]
}
}'
--PS:jsonData列数据为字符串格式,外面是**单引号**,里面是**双引号**(这个不能弄错了,否则不对)
1.提取jsonData第一层数据ID
select get_json_object(jsonData,'$.ID') from test
--输出
>188
2.提取jsonData第二层数据name
select get_json_object(jsonData,'$.message.name') from test
--输出
>Alex
3.提取jsonData第二层数据location的第一项
select get_json_object(jsonData,'$.message.location[0]') from test
--输出
>{"county":"日本","ctiy":"东京"}
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
--输出
>["东京","首尔"]
6.提取json字符串的第一个json对象
select get_json_object('[{"name":"悟空","sex":"男","age":"26"},{"name":"悟能","sex":"男","age":"24"}]','$[0]');
--输出
>{"name":"大郎","sex":"男","age":"25"}
————————————————
———————————————————————————————————————————
版权声明:本文为CSDN博主「Asher117」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Asher117/article/details/107984650