暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

轻松搞定数据处理:GBase 8s JSON 函数实用指南

原创 GBASE数据库 2025-08-26
245

GBase 8s 提供了JSON 函数,帮助开发者轻松处理 JSON 数据。本文将详细介绍三个常用的 JSON 函数: json_extract 、 json_replace 和 json_unquote ,并通过实际示例展示它们的使用方法。

json_extract:从 JSON 中提取数据


功能介绍

 json_extract 函数用于从 JSON 字符串中提取数据。其语法如下:

JSON_EXTRACT(json_doc, path)

•  json_doc :一个有效的 JSON 文档,可以是 JSON 字符串、JSON 列或表达式。

•  path :一个 JSON 路径表达式,表示要提取的元素位置,通常以 $ 开头。可以通过点 . 表示子元素,或者使用方括号 [] 表示数组中的元素。


示例

假设你有一个表 json_table ,其中包含一个名为 data 的列,存储了 JSON 数据。你可以使用 json_extract 函数提取特定的值。

-- 创建示例表
CREATE TABLE json_table (
   id INT PRIMARY KEY,
   data JSON
);
-- 插入示例数据
INSERT INTO json_table (id, data) VALUES (1, '{"name": "gbase", "age": 13}');
-- 提取 JSON 对象中的 "name" 键对应的值
SELECT JSON_EXTRACT(data, '$.name') AS name FROM json_table;


结果:
name              
"gbase"           


json_replace:更新 JSON 字段中的值


功能介绍

 json_replace 函数用于更新 JSON 字段中指定键值对的值。其语法如下:

JSON_REPLACE(json_doc, path, new_value)

•  json_doc :要更新的 JSON 字段。

•  path :要更新的键路径。

•  new_value :新的值。


示例

假设你想要更新 json_table 表中 data 列的 age 键的值。

-- 更新 JSON 对象中的 "age" 键对应的值
SELECT JSON_REPLACE(data, '$.age', 35) AS new_data FROM json_table;


结果:
new_data                                  
{"name": "gbase", "age": 35}              


json_unquote:去除 JSON 字符串值周围的引号


功能介绍

 json_unquote 函数用于去除 JSON 字符串值周围的引号,并返回原始的数据类型。其语法如下:

JSON_UNQUOTE(json_string)

•  json_string :一个包含 JSON 字符串的表达式。


示例

假设你想要去除 json_table 表中 data 列的 name 键值周围的引号。

-- 去除 JSON 对象中 "name" 键值的引号
SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.name')) AS name_without_quotes FROM json_table;


结果:
name_without_quotes     
gbase                   


综合示例

假设你有一个更复杂的 JSON 数据,包含嵌套的对象和数组。以下是一个综合示例,展示如何使用这些函数处理复杂的 JSON 数据。

-- 创建示例表
CREATE TABLE json_table (
   id INT PRIMARY KEY,
   data JSON
);
-- 插入示例数据
INSERT INTO json_table (id, data) VALUES (1, '{"name": "gbase", "age": 13, "address": {"city": "Beijing", "zip": "100080"}, "hobbies": ["reading", "coding", "traveling"]}");
-- 提取 JSON 对象中的 "name" 键对应的值
SELECT JSON_EXTRACT(data, '$.name') AS name FROM json_table;
-- 更新 JSON 对象中的 "age" 键对应的值
SELECT JSON_REPLACE(data, '$.age', 35) AS new_data FROM json_table;
-- 去除 JSON 对象中 "name" 键值的引号
SELECT JSON_UNQUOTE(JSON_EXTRACT(data, '$.name')) AS name_without_quotes FROM json_table;
-- 提取嵌套 JSON 对象中的 "city" 键对应的值
SELECT JSON_EXTRACT(data, '$.address.city') AS city FROM json_table;
-- 更新嵌套 JSON 对象中的 "zip" 键对应的值
SELECT JSON_REPLACE(data, '$.address.zip', '100085') AS new_address FROM json_table;
-- 提取 JSON 数组中的第一个元素
SELECT JSON_EXTRACT(data, '$.hobbies[0]') AS first_hobby FROM json_table;
-- 更新 JSON 数组中的第二个元素
SELECT JSON_REPLACE(data, '$.hobbies[1]', 'gaming') AS new_hobbies FROM json_table;


结果:

name       "gbase" 
new_data {"name": "gbase", "age": 35}  
name_without_quotes gbase
city      "Beijing"
new_address     {"name": "gbase", "age": 13, "address": {"city": "Beijing", "zip": "100085"}, "hobbies": ["reading", "coding", "traveling"]} 
first_hobby  "reading" 
new_hobbies {"name": "gbase", "age": 13, "address": {"city": "Beijing", "zip": "100080"}, "hobbies": ["reading", "gaming", "traveling"]}     

 

通过本文的介绍, GBase 8s 中三个常用的 JSON 函数: json_extract 、 json_replace 和 json_unquote 。这些函数可以轻松地从 JSON 数据中提取、更新和处理数据。希望这些内容能帮助您在开发中更高效地处理 JSON 数据。如果遇到任何问题,欢迎随时在社区中提问,我们在这里为你提供支持!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论