首页 MySQL JSON_KEYS() 函数

MySQL JSON_KEYS() 函数

MySQL JSON_KEYS() 函数返回一个包含了指定的 JSON 对象中最上层的成员 (key) 的数组。

JSON_KEYS() 语法

这里是 MySQL JSON_KEYS() 的语法:

JSON_KEYS(json)
JSON_KEYS(json, path)

参数

json
必需的。一个 JSON 对象文档。
path
可选的。路径表达式。

返回值

MySQL JSON_KEYS() 函数返回一个包含了指定的 JSON 对象中最上层的成员 (key) 的数组。如果指定了路径表达式,则返回路径表达式匹配的 JSON 对象中的最上层的成员组成的数组。

如果存在以下的情况, JSON_KEYS() 函数将返回 NULL

  • 未指定路径,且 JSON 文档不是一个 JSON 对象。
  • 指定了路径,且路径匹配的 JSON 值不是 JSON 对象。
  • 任意参数为 NULL

JSON_KEYS() 函数将在以下情况下返回错误:

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

JSON_KEYS() 示例

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

下面的示例返回一个 JSON 对象的所有顶层成员组成的数组。

SELECT JSON_KEYS('{"x": 1, "y": 2, "z": 3}');
+---------------------------------------+
| JSON_KEYS('{"x": 1, "y": 2, "z": 3}') |
+---------------------------------------+
| ["x", "y", "z"]                       |
+---------------------------------------+

我们也可以返回有路径表达式匹配的 JSON 对象的键。

SELECT JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]', '$[1]');
+----------------------------------------------------+
| JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]', '$[1]') |
+----------------------------------------------------+
| ["x", "y", "z"]                                    |
+----------------------------------------------------+

如果匹配的 JSON 文档不是 JSON 对象,JSON_KEYS() 返回 NULL。这个示例说明了这一点:

SELECT
    JSON_KEYS('1') as `keys of 1`,
    JSON_KEYS('true') as `keys of true`,
    JSON_KEYS('"hello"') as `keys of "hello"`,
    JSON_KEYS('[1, 2]') as `keys of [1, 2]`;
+-----------+--------------+-----------------+----------------+
| keys of 1 | keys of true | keys of "hello" | keys of [1, 2] |
+-----------+--------------+-----------------+----------------+
| NULL      | NULL         | NULL            | NULL           |
+-----------+--------------+-----------------+----------------+
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。