

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# JSON 函數
<a name="json-functions"></a>

**Topics**
+ [JSON\$1PARSE 函數](JSON_PARSE.md)
+ [CAN\$1JSON\$1PARSE 函數](CAN_JSON_PARSE.md)
+ [JSON\$1SERIALIZE 函數](JSON_SERIALIZE.md)
+ [JSON\$1SERIALIZE\$1TO\$1VARBYTE 函數](JSON_SERIALIZE_TO_VARBYTE.md)
+ [文字型 JSON 函式](text-json-functions.md)

**注意**  
建議您使用下列函式來搭配 JSON 使用：  
 [JSON\$1PARSE 函數](JSON_PARSE.md) 
 [CAN\$1JSON\$1PARSE 函數](CAN_JSON_PARSE.md) 
 [JSON\$1SERIALIZE 函數](JSON_SERIALIZE.md) 
 [JSON\$1SERIALIZE\$1TO\$1VARBYTE 函數](JSON_SERIALIZE_TO_VARBYTE.md) 
使用 JSON\$1PARSE 時，您只需在擷取時將 JSON 文字轉換為 SUPER 類型值一次，之後就能操作 SUPER 值。Amazon Redshift 剖析 SUPER 值的效率比剖析 VARCHAR 更高，因為後者是文字型 JSON 函式的輸出。如需使用 SUPER 資料類型的詳細資訊，請前往 [Amazon Redshift 中的半結構化資料](super-overview.md)。

當您需要儲存相當小的一組金鑰值對時，您可以用 JSON 格式儲存資料以節省空間。因為 JSON 字串可儲存於單一欄，採用 JSON 可能比以資料表格式儲存資料更有效率。例如，假設您有一個稀疏資料表，且您需要有許多欄才能完整代表所有可能的屬性，但任何給定列或任何給定欄的大部分欄值都是 NULL。如果採用 JSON 來儲存，您可以在單一 JSON 字串中以金鑰:值對來儲存列的資料，避免產生稀疏填入的資料表欄。

此外，您可以在 JSON 結構描述變更時，輕鬆修改 JSON 字串來儲存其他鍵:值對，而不需要在資料表中新增欄。

建議少用 JSON。JSON 不適合儲存較大的資料集，因為 JSON 將相異的資料儲存在單一欄，未使用 Amazon Redshift 的欄儲存架構。雖然 Amazon Redshift 在 CHAR 和 VARCHAR 欄上支援 JSON 函數，但我們建議您使用 SUPER 來處理 JSON 序列化格式的資料。SUPER 使用可以有效地查詢階層式資料的剖析後無結構描述表示。如需 SUPER 資料類型的相關資訊，請參閱 [Amazon Redshift 中的半結構化資料](super-overview.md)。

JSON 使用 UTF-8 編碼的文字字串，所以 JSON 字串可儲存為 CHAR 或 VARCHAR 資料類型。

JSON 字串必須是符合下列規則的適當格式化 JSON：
+ 根層級 JSON 可以是 JSON 物件或 JSON 陣列。JSON 物件是一組未排序的逗號分隔金鑰:值對 (以大括號括住)。

  例如 `{"one":1, "two":2} `
+ JSON 陣列是一組已排序的逗號分隔值 (以方括號括住)。

  以下是範例：`["first", {"one":1}, "second", 3, null] `
+ JSON 陣列採用以零開始的索引；陣列的第一個元素在位置 0。在 JSON 金鑰:值對中，金鑰是雙引號括住的字串。
+ JSON 值可以是下列任何值：
  + JSON 物件 
  + 陣列 
  + string
    + 使用雙引號表示
  + number
    + 包含整數、小數和浮點數
  + boolean
  + null 
+ 空物件和空陣列是有效的 JSON 值。
+ JSON 欄位區分大小寫。
+ 忽略 JSON 結構元素之間的空格 (例如 `{ }, [ ]`)。

Amazon Redshift JSON 函數和 Amazon Redshift COPY 命令使用相同方法來處理 JSON 格式的資料。如需使用 JSON 的相關資訊，請參閱[從 JSON 格式 COPY](copy-usage_notes-copy-from-json.md)