JSON_OBJECT
📄字数 704
👁️阅读量 加载中...
功能描述
构建JSON对象。
语法格式
sql
JSON_OBJECT( [key, val[, key, val]...] )
输入参数
0组或多组键值对
key
:必须为可转换为字符型的类型,不能为NULL。val
:类型取值为NULL、布尔型、数值型、自定义类型(OBJECT、VARRAY、TABLE)、JSON类型以及其他能转换成字符型的类型。
提示
- NULL对应JSON Null,
'null'
对应JSON String。
输出结果
JSON类型。
提示
- 参数中出现了重复的key,那么相同键且在后面的键值对将被保留在最终返回的结果中。
示例
sql
-- 创建一个空的JSON对象
SQL> SELECT JSON_OBJECT();
+-------+
| EXPR1 |
+-------+
| {} |
+-------+
-- 创建含有多种数据类型的JSON对象
SQL> SELECT JSON_OBJECT('key1', true, 1, 1);
+------------------------+
| EXPR1 |
+------------------------+
| {"1": 1, "key1": true} |
+------------------------+
SQL> SELECT JSON_OBJECT(true, false, 123.456, 'abc');
+-----------------------------------+
| EXPR1 |
+-----------------------------------+
| {"true": false, "123.456": "abc"} |
+-----------------------------------+
-- 创建含有NULL值key的JSON对象
SQL> SELECT JSON_OBJECT(NULL, 'ABC');
Error: [E17102 L1 C8] JSON文本不能包含null成员名称
-- 创建含有重复键的JSON对象
SQL> SELECT JSON_OBJECT('name', 'Jim', 'age', 20, 'name', 'Tim');
+----------------------------+
| EXPR1 |
+----------------------------+
| {"age": 20, "name": "Tim"} |
+----------------------------+
-- 创建包含复杂的JSON对象
SQL> SELECT JSON_OBJECT(
'name',
'Tim',
'age',
20,
'friend',
JSON_OBJECT('name', 'Jim', 'age', 20),
'hobby',
JSON_ARRAY('games', 'sports')
);
+------------------------------------------------------------------------------------------------+
| EXPR1 |
+------------------------------------------------------------------------------------------------+
| {"age": 20, "name": "Tim", "hobby": ["games", "sports"], "friend": {"age": 20, "name": "Jim"}} |
+------------------------------------------------------------------------------------------------+