MariaDB JSON_COMPACT() 函数的基础用法与实例

MariaDB JSON_COMPACT() 函数是一个用于压缩 JSON 文档的函数。

发布于

MariaDB JSON_COMPACT() 函数是一个用于压缩 JSON 文档的函数。它可以接受一个参数,表示一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。该函数返回一个新的 JSON 文档,去除了所有的空格,换行,制表符等空白字符。如果参数不是一个有效的 JSON 文档,那么该函数会返回 NULL

语法

MariaDB JSON_COMPACT() 函数的语法如下:

JSON_COMPACT(json_doc)

其中:

  • json_doc 是一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。

实例

下面是一些使用 MariaDB JSON_COMPACT() 函数的实例。

压缩一个简单的 JSON 文档

假设我们有一个 JSON 文档,表示一个人的信息:

SET @json = '{
  "name": "Alice",
  "age": 18,
  "hobbies": [
    "reading",
    "music",
    "travel"
  ]
}';

我们可以使用 MariaDB JSON_COMPACT() 函数,压缩这个 JSON 文档,去除所有的空白字符:

SELECT JSON_COMPACT(@json) AS result;

运行结果如下:

{"name":"Alice","age":18,"hobbies":["reading","music","travel"]}

压缩一个嵌套的 JSON 文档

假设我们有一个 JSON 文档,表示一个图书馆的藏书:

SET @json = '[
  {
    "title": "The Catcher in the Rye",
    "author": "J.D. Salinger",
    "year": 1951
  },
  {
    "title": "Nineteen Eighty-Four",
    "author": "George Orwell",
    "year": 1949
  }
]';

我们可以使用 MariaDB JSON_COMPACT() 函数,压缩这个 JSON 文档,去除所有的空白字符:

SELECT JSON_COMPACT(@json) AS result;

运行结果如下:

[{"title":"The Catcher in the Rye","author":"J.D. Salinger","year":1951},{"title":"Nineteen Eighty-Four","author":"George Orwell","year":1949}]

压缩一个包含不同类型的 JSON 文档

假设我们有一个 JSON 文档,表示一个电影的评分:

SET @json = '{
  "title": "The Matrix",
  "rating": 8.7,
  "genres": [
    "Action",
    "Sci-Fi",
    "Thriller"
  ],
  "year": 1999
}';

我们可以使用 MariaDB JSON_COMPACT() 函数,压缩这个 JSON 文档,去除所有的空白字符:

SELECT JSON_COMPACT(@json) AS result;

运行结果如下:

{"title":"The Matrix","rating":8.7,"genres":["Action","Sci-Fi","Thriller"],"year":1999}

压缩一个非 JSON 文档

假设我们有一个非 JSON 文档,表示一个日期:

SET @json = '2021-02-25';

我们可以使用 MariaDB JSON_COMPACT() 函数,尝试压缩这个文档:

SELECT JSON_COMPACT(@json) AS result;

运行结果如下:

+--------+
| result |
+--------+
| NULL   |
+--------+

这是因为日期不是一个有效的 JSON 文档,所以该函数返回 NULL

压缩一个空的 JSON 文档

假设我们有一个空的 JSON 文档,表示一个空对象:

SET @json = '{}';

我们可以使用 MariaDB JSON_COMPACT() 函数,压缩这个 JSON 文档,去除所有的空白字符:

SELECT JSON_COMPACT(@json) AS result;

运行结果如下:

+--------+
| result |
+--------+
| {}     |
+--------+

注意,即使没有任何空白字符,该函数仍然会返回一个有效的 JSON 文档。

相关函数

MariaDB JSON_COMPACT() 函数与以下函数有一定的关联:

  • JSON_PRETTY() 函数:用于美化 JSON 文档的函数。它可以接受一个参数,表示一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。该函数返回一个新的 JSON 文档,添加了适当的空格,换行,制表符等空白字符,以提高可读性。如果参数不是一个有效的 JSON 文档,那么该函数会返回 NULL
  • JSON_QUOTE() 函数:用于给 JSON 文档添加引号的函数。它可以接受一个参数,表示一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。该函数返回一个新的 JSON 文档,用双引号包围,并对特殊字符进行转义。如果参数不是一个有效的 JSON 文档,那么该函数会返回 NULL
  • JSON_UNQUOTE() 函数:用于去除 JSON 文档的引号的函数。它可以接受一个参数,表示一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。该函数返回一个新的 JSON 文档,去除了双引号,并对转义的字符进行还原。如果参数不是一个有效的 JSON 文档,那么该函数会返回 NULL
  • JSON_VALID() 函数:用于检查 JSON 文档的有效性的函数。它可以接受一个参数,表示一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。该函数返回一个布尔值,表示参数是否是一个有效的 JSON 文档。

结论

MariaDB JSON_COMPACT() 函数是一个用于压缩 JSON 文档的函数。它可以接受一个参数,表示一个 JSON 文档,可以是一个 JSON 字符串,也可以是一个 JSON 列。该函数返回一个新的 JSON 文档,去除了所有的空格,换行,制表符等空白字符。如果参数不是一个有效的 JSON 文档,那么该函数会返回 NULL。该函数可以用于对 JSON 数据进行优化,减少其占用的空间和传输的时间。