首页 MySQL JSON_TYPE() 函数

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                |
+-----------------+-----------------------+
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。