### 12.18.1 JSON 函数参考

[](<>)

[](<>)

**表 12.22 JSON 函数**

| 姓名 | 描述 | 介绍 | 已弃用 |
| --- | --- | --- | --- |
| [`->`](json-search-functions.html#operator_json-column-path) | 评估路径后从 JSON 列返回值；相当于 JSON\_提炼（）。 |  |  |
| [`->>`](json-search-functions.html#operator_json-inline-path) | 评估路径并取消引用结果后从 JSON 列返回值；相当于 JSON\_取消引用（JSON\_提炼（））。 |  |  |
| [`JSON_ARRAY()`](json-creation-functions.html#function_json-array) | 创建 JSON 数组 |  |  |
| [`JSON_ARRAY_APPEND()`](json-modification-functions.html#function_json-array-append) | 将数据附加到 JSON 文档 |  |  |
| [`JSON_ARRAY_INSERT()`](json-modification-functions.html#function_json-array-insert) | 插入 JSON 数组 |  |  |
| [`JSON_CONTAINS()`](json-search-functions.html#function_json-contains) | JSON 文档是否在路径中包含特定对象 |  |  |
| [`JSON_CONTAINS_PATH()`](json-search-functions.html#function_json-contains-path) | JSON 文档是否包含路径中的任何数据 |  |  |
| [`JSON_DEPTH()`](json-attribute-functions.html#function_json-depth) | JSON 文档的最大深度 |  |  |
| [`JSON_EXTRACT()`](json-search-functions.html#function_json-extract) | 从 JSON 文档返回数据 |  |  |
| [`JSON_INSERT()`](json-modification-functions.html#function_json-insert) | 将数据插入 JSON 文档 |  |  |
| [`JSON_KEYS()`](json-search-functions.html#function_json-keys) | JSON 文档中的键数组 |  |  |
| [`JSON_LENGTH()`](json-attribute-functions.html#function_json-length) | JSON 文档中的元素数 |  |  |
| [`JSON_MERGE()`](json-modification-functions.html#function_json-merge) | 合并 JSON 文档，保留重复键。不推荐使用的 JSON 同义词\_合并\_保存（） |  | 是的 |
| [`JSON_MERGE_PATCH()`](json-modification-functions.html#function_json-merge-patch) | 合并 JSON 文档，替换重复键的值 |  |  |
| [`JSON_MERGE_PRESERVE()`](json-modification-functions.html#function_json-merge-preserve) | 合并 JSON 文档，保留重复键 |  |  |
| [`JSON_OBJECT()`](json-creation-functions.html#function_json-object) | 创建 JSON 对象 |  |  |
| [`JSON_OVERLAPS()`](json-search-functions.html#function_json-overlaps) | 比较两个 JSON 文档，如果它们有任何共同的键值对或数组元素，则返回 TRUE (1)，否则返回 FALSE (0) | 8.0.17 |  |
| [`JSON_PRETTY()`](json-utility-functions.html#function_json-pretty) | 以人类可读的格式打印 JSON 文档 |  |  |
| [`JSON_QUOTE()`](json-creation-functions.html#function_json-quote) | 引用 JSON 文档 |  |  |
| [`JSON_REMOVE()`](json-modification-functions.html#function_json-remove) | 从 JSON 文档中删除数据 |  |  |
| [`JSON_REPLACE()`](json-modification-functions.html#function_json-replace) | 替换 JSON 文档中的值 |  |  |
| [`JSON_SCHEMA_VALID()`](json-validation-functions.html#function_json-schema-valid) | 根据 JSON 模式验证 JSON 文档；如果文档根据架构验证，则返回 TRUE/1，否则返回 FALSE/0 | 8.0.17 |  |
| [`JSON_SCHEMA_VALIDATION_REPORT()`](json-validation-functions.html#function_json-schema-validation-report) | 根据 JSON 模式验证 JSON 文档；返回 JSON 格式的关于验证结果的报告，包括成功或失败以及失败的原因 | 8.0.17 |  |
| [`JSON_SEARCH()`](json-search-functions.html#function_json-search) | JSON 文档中值的路径 |  |  |
| [`JSON_SET()`](json-modification-functions.html#function_json-set) | 将数据插入 JSON 文档 |  |  |
| [`JSON_STORAGE_FREE()`](json-utility-functions.html#function_json-storage-free) | 部分更新后在 JSON 列值的二进制表示中释放空间 |  |  |
| [`JSON_STORAGE_SIZE()`](json-utility-functions.html#function_json-storage-size) | 用于存储 JSON 文档的二进制表示的空间 |  |  |
| [`JSON_TABLE()`](json-table-functions.html#function_json-table) | 从 JSON 表达式返回数据作为关系表 |  |  |
| [`JSON_TYPE()`](json-attribute-functions.html#function_json-type) | JSON 值的类型 |  |  |
| [`JSON_UNQUOTE()`](json-modification-functions.html#function_json-unquote) | 取消引用 JSON 值 |  |  |
| [`JSON_VALID()`](json-attribute-functions.html#function_json-valid) | JSON值是否有效 |  |  |
| [`JSON_VALUE()`](json-search-functions.html#function_json-value) | 从提供的路径指向的位置的 JSON 文档中提取值；将此值作为 VARCHAR(512) 或指定类型返回 | 8.0.21 |  |
| [`成员（）`](json-search-functions.html#operator_member-of) | 如果第一个操作数与作为第二个操作数传递的 JSON 数组的任何元素匹配，则返回 true (1)，否则返回 false (0) | 8.0.17 |  |

MySQL 支持两个聚合 JSON 函数[`JSON_ARRAYAGG()`](aggregate-functions.html#function_json-arrayagg)和[`JSON_OBJECTAGG()`](aggregate-functions.html#function_json-objectagg).看[第 12.20 节，“聚合函数”](aggregate-functions-and-modifiers.html), 对于这些的描述。

MySQL 还支持以易于阅读的格式“漂亮打印”JSON 值，使用[`JSON_PRETTY()`](json-utility-functions.html#function_json-pretty)功能。您可以查看给定 JSON 值占用了多少存储空间，以及剩余多少空间可用于额外存储，使用[`JSON_STORAGE_SIZE()`](json-utility-functions.html#function_json-storage-size)和[`JSON_STORAGE_FREE()`](json-utility-functions.html#function_json-storage-free)， 分别。有关这些功能的完整说明，请参阅[第 12.18.8 节，“JSON 实用函数”](json-utility-functions.html).
