- 类别:
:doc:`/sql-reference/functions-semistructured`(解析)
CHECK_JSON¶
检查 JSON 文档的有效性。如果输入字符串是有效的 JSON 文档或 NULL,则输出为 NULL (即无错误)。如果无法将输入转换为有效的 JSON 值,则输出字符串将包含错误消息。
语法¶
CHECK_JSON( <string_or_variant_expr> )
实参¶
string_or_variant_expr
要检查的
VARIANT
或字符串值(或表达式)。如果表达式是
VARIANT
类型,则应包含字符串。
示例¶
创建一个表,并插入一些 VARCHAR
和 VARIANT
值:
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;
使用 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 | +----+----------------------+----------------------------------+
使用 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 | +----+----------------------+--------------------------------------+