JSON_OBJECT
功能描述
构建JSON对象。
语法格式
JSON_OBJECT( [key, val[, key, val]...] )
参数说明
0个或多个键值对,key必须为可转换为字符型的类型,val类型取值为(NULL、布尔型、数值型、自定义类型(object、varray、table)、JSON类型以及其他能转换成字符型的类型)。
说明:
NULL对应json null,'null'对应json string。
函数返回类型
JSON数值类型
示例
sql
SQL> SELECT TO_CHAR(JSON_OBJECT('key1', true, 1, 1));
EXPR1 |
------------------------------------------------------------------------------
{"1": 1, "key1": true}|
SQL> SELECT TO_CHAR(JSON_OBJECT('name', 'Jim', 'age', 20));
EXPR1 |
------------------------------------------------------------------------------
{"age": 20, "name": "Jim"}|
-- 重复的键:如果 JSON_OBJECT() 的参数中出现了重复的键值对,那么后面的键值对保留在最终返回的对象中
SQL> SELECT TO_CHAR(JSON_OBJECT('name', 'Jim', 'age', 20, 'name', 'Tim'));
EXPR1 |
------------------------------------------------------------------------------
{"age": 20, "name": "Tim"}|
-- 包含复杂的对象
SQL> SELECT TO_CHAR(JSON_OBJECT(
'name',
'Tim',
'age',
20,
'friend',
TO_CHAR(JSON_OBJECT('name', 'Jim', 'age', 20)),
'hobby',
TO_CHAR(JSON_ARRAY('games', 'sports'))
)) AS object;
OBJECT |
------------------------------------------------------------------------------
{"age": 20, "name": "Tim", "hobby": "[\"games\", \"sports\"]", "friend": "{\"age\": 20, \"name\": \"Jim\"}"}|
-- 上述SQL,我们组装了如下 JSON 对象
{
"age": 20,
"name": "Tim",
"hobby": ["games", "sports"],
"friend": { "age": 20, "name": "Jim" }
}