

 从补丁 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/)。

# CAN\$1JSON\$1PARSE 函数
<a name="CAN_JSON_PARSE"></a>

CAN\$1JSON\$1PARSE 函数以 JSON 格式解析数据，如果可以使用 JSON\$1PARSE 函数将结果转换为 `SUPER` 值，则返回 `true`。

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

```
CAN_JSON_PARSE( {json_string | binary_value} )
```

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

 *json\$1string*  
以 `VARCHAR` 形式返回序列化 JSON 的表达式。

 *binary\$1value*  
VARBYTE 类型的二进制值。

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

`BOOLEAN`

## 使用说明
<a name="CAN_JSON_PARSE-usage-notes"></a>
+ CAN\$1JSON\$1PARSE 对于空字符串返回 false。当输入参数为 null 时，它返回 NULL。

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

 以下示例显示了使用 CASE 条件对格式正确的 JSON 数组运行 CAN\$1JSON\$1PARSE 的情况。它返回 true，因此 Amazon Redshift 对示例值运行 JSON\$1PARSE 函数。

```
SELECT CASE 
            WHEN CAN_JSON_PARSE('[10001,10002,"abc"]')
            THEN JSON_PARSE('[10001,10002,"abc"]')
        END;

 case
---------------------
'[10001,10002,"abc"]'
```

 以下示例显示了使用 CASE 条件对非 JSON 格式的值运行 CAN\$1JSON\$1PARSE 的情况。它返回 false，因此 Amazon Redshift 改为返回 CASE 条件的 ELSE 子句中的段。

```
SELECT CASE 
            WHEN CAN_JSON_PARSE('This is a string.')
            THEN JSON_PARSE('This is a string.')
            ELSE 'This is not JSON.'
        END;

 case
---------------------
"This is not JSON."
```