跳到主要内容

JSON_TYPE

描述

该函数返回代表 JSON 值类型的 utf8mb4 字符串。

语法

JSON_TYPE(json_val)

说明

参数 json_val 可以是对象、数组或标量类型。

如果参数为 NULL,则返回 NULL。如果参数不是有效的 JSON 值,则会报错。

示例

SET @jn = '{"a": [10, true]}';
Query OK, 0 rows affected (0.000 sec)

SELECT JSON_TYPE(JSON_EXTRACT(@jn, '$.a'));
+-------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@jn, '$.a')) |
+-------------------------------------+
| ARRAY |
+-------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_TYPE(JSON_EXTRACT(@jn, '$.a[0]'));
+----------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@jn, '$.a[0]')) |
+----------------------------------------+
| INTEGER |
+----------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_TYPE(JSON_EXTRACT(@jn, '$.a[1]'));
+----------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@jn, '$.a[1]')) |
+----------------------------------------+
| BOOLEAN |
+----------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_TYPE(NULL);
+-----------------+
| JSON_TYPE(NULL) |
+-----------------+
| NULL |
+-----------------+
1 row in set (0.001 sec)

SELECT JSON_TYPE(1);
ERROR 3146 (22032): Invalid data type for JSON data in argument 1
to function json_type; a JSON string or JSON type is required.