前言
在数据存储与交互场景中,JSON格式凭借其灵活性和易读性成为主流选择。KingbaseES提供强大的JSON/JSONB数据处理能力,本文将深度解析20+核心函数,助您掌握JSON数据操作精髓!
一、基础操作函数(系列三)
1 键值解构神器
JSONB_EACH
将JSON对象拆解为键值对集合
SELECT jt.jsondata, je.* FROM jsontable jt, jsonb_each(jt.jsondata) je;
JSONB_EACH_TEXT
文本格式输出键值对
SELECT jt.jsondata, je.* FROM jsontable jt, jsonb_each_text(jt.jsondata) je;
2 键值提取双雄
JSONB_OBJECT_KEYS
获取对象所有键名
select jt.jsondata, jo.* from jsontable jt, jsonb_object_keys(jt.jsondata) jo;
JSONB_EXTRACT_PATH
精准路径取值
select json_extract_path('{"a":1,"b":2}','a'); -- 返回1
二、高级处理函数(系列四)
1 格式优化大师
JSONB_PRETTY
美化JSON输出排版
SELECT jsonb_pretty('[{"id":1},{"id":2}]');
JSONB_STRIP_NULLS
智能过滤空值字段
SELECT jsonb_strip_nulls('{"a":null,"b":1}'); -- 返回{"b":1}
2 数据聚合专家
JSON_OBJECTAGG
动态构建JSON对象
SELECT json_objectagg(id VALUE name)
FROM comtable; -- {"1":"a","2":"b","3":"c"}
三、深度操作函数(系列五)
1 数据修改黑科技
JSONB_SET
精准修改指定路径值
SELECT jsonb_set(
'[{"id":1}]',
'{0,name}',
'"Kingbase"'
); -- [{"id":1,"name":"Kingbase"}]
JSONB_INSERT
智能插入新元素
SELECT jsonb_insert(
'{"a":1}',
'{b}',
'2'
); -- {"a":1,"b":2}
2 数据检索利器
JSON_QUERY
多条件高级查询
SELECT json_query(
'{"sales":[100,200,300]}',
'$.sales[*]?(@ > 150)'
); -- 返回[200,300]
实战技巧
1 路径表达式灵活使用
$.store.book[0].title 多级精准定位
2 NULL处理策略
NULL ON ERROR与DEFAULT的合理搭配
3 性能优化
JSONB类型相比JSON存储效率提升30%+
函数速查表
函数类型 | 核心函数 | 典型场景 |
数据解构 | JSONB_EACH / OBJECT_KEYS | 键值遍历分析 |
路径操作 | EXTRACT_PATH / JSON_QUERY | 精准数据提取 |
数据修改 | JSONB_SET / JSONB_INSERT | 动态修改JSON结构 |
格式处理 | JSONB_PRETTY / STRIP_NULLS | 数据清洗与可视化 |
结语
掌握这些JSON函数,您将能:
轻松处理复杂JSON结构
提升数据操作效率50%+
实现灵活的数据交互方案
立即收藏本文,成为KingbaseES JSON数据处理专家!