CAN_JSON_PARSE 函數 - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

CAN_JSON_PARSE 函數

CAN_JSON_PARSE 函數會剖析 JSON 格式的資料,如果可以使用 JSON_PARSE 函數將結果轉換為 SUPER 值,則傳回 true

語法

CAN_JSON_PARSE( {json_string | binary_value} )

引數

json_string

VARCHAR 形式傳回序列化 JSON 的表達式。

binary_value

VARBYTE 類型二進位值。

傳回類型

BOOLEAN

使用須知

  • CAN_JSON_PARSE 會針對空字串傳回 false。當輸入引數為 null 時,它會傳回 NULL。

範例

下列範例顯示使用 CASE 條件在格式正確的 JSON 陣列上執行的 CAN_JSON_PARSE。它傳回 true,因此 Amazon Redshift 會對範例值執行 JSON_PARSE 函式。

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

下列範例顯示使用 CASE 條件對非 JSON 格式的值執行的 CAN_JSON_PARSE。它傳回 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."