全部產品
Search
文件中心

MaxCompute:JSON函數

更新時間:Dec 31, 2025

MaxCompute支援ARRAY、MAP、STRUCT及JSON四種複雜資料類型,本文介紹JSON類型函數及其功能。

索引

函數

功能

FROM_JSON

根據給定的JSON字串和輸出格式資訊,返回ARRAY、MAP或STRUCT類型。

GET_JSON_OBJECT

在一個標準JSON字串中,按照指定方式抽取指定的字串。

JSON_ARRAY

產生JSON ARRAY。將一個可能為空白的JSON類型對象,轉換為包含這些類型的數組。

JSON_CONTAINS

判斷一個JSON資料中是否包含指定的 JSON 元素。

JSON_EXISTS

查看json_path對應的JSON值是否存在。

JSON_EXPLODE

支援將JSON數組或JSON對象中的每個元素拆解(展開)成多行記錄輸出。

JSON_EXTRACT

按照指定的json_path,從JSON格式的字串或JSON類型資料中提取對應的字串或JSON資料。

JSON_FORMAT

將JSON資料轉換成STRING類型,預設不自動進行美化。

JSON_INSERT

在JSON檔案指定位置中插入JSON值。

JSON_LENGTH

返回指定路徑下的JSON資料的長度。

JSON_OBJECT

產生JSON OBJECT,要求key和value成對出現。

JSON_PARSE

將STRING類型轉成JSON類型,非JSON格式轉換為字串會報錯。

JSON_PRETTY

美化JSON,增加換行及空格。

JSON_SET

替換JSON檔案指定位置的值或新增對應的值。

JSON_STRIP_NULLS

從JSON對象或JSON數組中移除所有值為null的欄位或元素。

JSON_TUPLE

在一個標準的JSON字串中,按照輸入的一組鍵抽取各個鍵指定的字串。

JSON_TYPE

返回JSON資料所屬的資料類型名稱。

JSON_UNQUOTE

去掉JSON資料中的引號。

JSON_VALID

檢查字串是否為合法的JSON格式。

TO_JSON

將指定的複雜類型輸出為JSON字串。

適用範圍

  • SDK版本要求

    • 僅支援Java SDK V0.44.0及以上版本。

    • 僅支援PyODPS V0.11.4.1及以上版本。

  • 表操作限制

    • 暫不支援對一張表新增JSON列。

    • 暫不支援Cluster表。

    • 暫不支援Delta Table類型表。

  • SQL操作限制

    • 暫不支援對JSON類型的比較操作。

    • 暫不支援對JSON類型進行ORDER BYGROUP BY或作為JOIN的key。

  • 資料精度

    • 目前JSON NUMBER的整數部分使用BIGINT類型儲存,當整數部分超出BIGINT範圍時會溢出。

    • 目前JSON NUMBER的小數部分使用DOUBLE類型儲存,當小數部分轉換為DOUBLE時會損失精度。

  • 字元限制:產生JSON類型資料所用的字串裡不支援UNICODE\u0000

  • 引擎相容性:如果表存在其他引擎讀取情況,比如Hologres等,目前不支援讀取JSON資料類型。

  • Java UDF和Python UDF暫不支援JSON類型。

  • JSON資料類型可以被嵌套使用,最多支援不超過20層的嵌套。

  • 開發工具

    目前支援的開發套件括odpscmd用戶端,Studio和DataWorks,暫不支援Dataphin等外圍生態。如果需要跟外部系統組合使用,請先確認後再使用。使用odpscmd用戶端時需要關注以下內容:

    • 需要將用戶端升級到V0.46.5及以上版本,否則無法使用DESC json_table命令且無法通過Tunnel下載JSON類型資料。

    • 需要將用戶端安裝路徑下的conf\odps_config.ini檔案中的參數use_instance_tunnel設定為false,否則查詢會報錯

相關文檔

JSON資料類型詳情請參見JSON資料類型