Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


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"}} |
+------------------------------------------------------------------------------------------------+