MySQL JSON_TYPE() 函数

MySQL JSON_TYPE() 函数返回一个给定的 JSON 值的类型。

JSON_TYPE() 语法

这里是 MySQL JSON_TYPE() 的语法:

JSON_TYPE(json_value)

参数

json_value
必需的。一个 JSON 值。

返回值

JSON_TYPE() 函数返回一个 utf8mb4 字符串,它代表了给定的 JSON 值的类型。JSON_TYPE() 函数将返回下面值中的一个:

  • OBJECT: JSON 对象
  • ARRAY: JSON 数组
  • BOOLEAN: JSON 布尔值
  • NULL: JSON null
  • INTEGER: MySQL TINYINT, SMALLINT, MEDIUMINT,INTBIGINT 类型的值
  • DOUBLE: MySQL DOUBLEFLOAT 类型的值
  • DECIMAL: MySQL DECIMALNUMERIC 类型的值
  • DATETIME: MySQL DATETIMETIMESTAMP 类型的值
  • DATE: MySQL DATE 类型的值
  • TIME: MySQL TIME 类型的值
  • STRING: MySQL CHAR, VARCHAR, TEXT, ENUMSET
  • BLOB: MySQL BINARY, VARBINARY, BLOBBIT
  • OPAQUE: 以上之外的类型

如果参数为 NULL,此函数将返回 NULL

如果参数不是有效的 JSON 文档,MySQL 将会给出错误。您可以使用 JSON_VALID() 验证 JSON 文档的有效性。

JSON_TYPE() 示例

这里列出了几个常见的 JSON_TYPE() 用法示例。

示例 1

SELECT JSON_TYPE('true'), JSON_TYPE('null'), JSON_TYPE('"abc"');
+-------------------+-------------------+--------------------+
| JSON_TYPE('true') | JSON_TYPE('null') | JSON_TYPE('"abc"') |
+-------------------+-------------------+--------------------+
| BOOLEAN           | NULL              | STRING             |
+-------------------+-------------------+--------------------+

示例 2: 数字

SELECT JSON_TYPE('1'), JSON_TYPE('1.23');
+----------------+-------------------+
| JSON_TYPE('1') | JSON_TYPE('1.23') |
+----------------+-------------------+
| INTEGER        | DOUBLE            |
+----------------+-------------------+

示例 3: 数组

SELECT JSON_TYPE('[]'), JSON_TYPE('[1, 2]');
+-----------------+---------------------+
| JSON_TYPE('[]') | JSON_TYPE('[1, 2]') |
+-----------------+---------------------+
| ARRAY           | ARRAY               |
+-----------------+---------------------+

示例 4: 对象

SELECT JSON_TYPE('{}'), JSON_TYPE('{"x": 1}');
+-----------------+-----------------------+
| JSON_TYPE('{}') | JSON_TYPE('{"x": 1}') |
+-----------------+-----------------------+
| OBJECT          | OBJECT                |
+-----------------+-----------------------+