

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# IS\$1VALID\$1JSON 函数
<a name="IS_VALID_JSON"></a>

**注意**  
CAN\$1JSON\$1PARSE 及其关联函数将 JSON 值解析为 SUPER，Amazon Redshift 解析 SUPER 的效率比 VARCHAR 更高。  
 我们建议您使用 [CAN\$1JSON\$1PARSE 函数](CAN_JSON_PARSE.md)验证您的 JSON 字符串，而不是使用 IS\$1VALID\$1JSON。

IS\$1VALID\$1JSON 函数用于验证 JSON 字符串。如果字符串是格式正确的 JSON 字符串，则该函数返回布尔值 `true`；如果字符串格式不正确，函数将返回 `false`。要验证 JSON 数组，请使用 [IS\$1VALID\$1JSON\$1ARRAY 函数](IS_VALID_JSON_ARRAY.md)

有关更多信息，请参阅 [JSON 函数](json-functions.md)。

## 语法
<a name="IS_VALID_JSON-synopsis"></a>

```
IS_VALID_JSON('json_string')
```

## 参数
<a name="IS_VALID_JSON-arguments"></a>

 *json\$1string*  
计算结果为 JSON 字符串的字符串或表达式。

## 返回类型
<a name="IS_VALID_JSON-return"></a>

`BOOLEAN`

## 示例
<a name="IS_VALID_JSON-examples"></a>

要创建一个表并插入 JSON 字符串进行测试，请使用以下示例。

```
CREATE TABLE test_json(id int IDENTITY(0,1), json_strings VARCHAR);

-- Insert valid JSON strings --
INSERT INTO test_json(json_strings) VALUES
('{"a":2}'), 
('{"a":{"b":{"c":1}}}'), 
('{"a": [1,2,"b"]}');

-- Insert invalid JSON strings --
INSERT INTO test_json(json_strings) VALUES
('{{}}'), 
('{1:"a"}'), 
('[1,2,3]');
```

要验证前面示例中的字符串，请使用下面的示例。

```
SELECT id, json_strings, IS_VALID_JSON(json_strings) 
FROM test_json
ORDER BY id;

+----+---------------------+---------------+
| id |    json_strings     | is_valid_json |
+----+---------------------+---------------+
|  0 | {"a":2}             | true          |
|  4 | {"a":{"b":{"c":1}}} | true          |
|  8 | {"a": [1,2,"b"]}    | true          |
| 12 | {{}}                | false         |
| 16 | {1:"a"}             | false         |
| 20 | [1,2,3]             | false         |
+----+---------------------+---------------+
```