类别:

:doc:`/sql-reference/functions-semistructured`(解析)

CHECK_JSON

检查 JSON 文档的有效性。如果输入字符串是有效的 JSON 文档或 NULL,则输出为 NULL (即无错误)。如果无法将输入转换为有效的 JSON 值,则输出字符串将包含错误消息。

语法

CHECK_JSON( <string_or_variant_expr> )
Copy

实参

string_or_variant_expr

要检查的 VARIANT 或字符串值(或表达式)。

如果表达式是 VARIANT 类型,则应包含字符串。

示例

创建一个表,并插入一些 VARCHARVARIANT 值:

CREATE TABLE sample_json_table (ID INTEGER, varchar1 VARCHAR, variant1 VARIANT);
INSERT INTO sample_json_table (ID, varchar1) VALUES 
    (1, '{"ValidKey1": "ValidValue1"}'),
    (2, '{"Malformed -- Missing value": }'),
    (3, NULL)
    ;
UPDATE sample_json_table SET variant1 = varchar1::VARIANT;
Copy

使用 CHECK_JSON 函数检查 VARCHAR 列中潜在的 JSON 兼容字符串的有效性:

SELECT ID, CHECK_JSON(varchar1), varchar1 FROM sample_json_table ORDER BY ID;
+----+----------------------+----------------------------------+
| ID | CHECK_JSON(VARCHAR1) | VARCHAR1                         |
|----+----------------------+----------------------------------|
|  1 | NULL                 | {"ValidKey1": "ValidValue1"}     |
|  2 | misplaced }, pos 32  | {"Malformed -- Missing value": } |
|  3 | NULL                 | NULL                             |
+----+----------------------+----------------------------------+
Copy

使用 CHECK_JSON 函数检查 VARIANT 列中潜在的 JSON 兼容字符串的有效性:

SELECT ID, CHECK_JSON(variant1), variant1 FROM sample_json_table ORDER BY ID;
+----+----------------------+--------------------------------------+
| ID | CHECK_JSON(VARIANT1) | VARIANT1                             |
|----+----------------------+--------------------------------------|
|  1 | NULL                 | "{\"ValidKey1\": \"ValidValue1\"}"   |
|  2 | misplaced }, pos 32  | "{\"Malformed -- Missing value\": }" |
|  3 | NULL                 | NULL                                 |
+----+----------------------+--------------------------------------+
Copy
语言: 中文