全部產品
Search
文件中心

MaxCompute:JSON_LENGTH

更新時間:Dec 25, 2025

JSON_LENGTH函數用於返回指定路徑下的JSON資料的長度。

命令格式

BIGINT JSON_LENGTH(JSON <json> [, STRING <json_path>])

-- 標準樣本。
-- 返回2。
SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}');

參數說明

  • json: 必填。需要檢查長度的 JSON資料。JSON類型。

  • json_path:可選。指定JSON路徑。STRING類型。若未指定,預設返回整個JSON資料的長度。

傳回值說明

返回BIGINT類型。返回規則如下:

  • json是一個JSON ARRAY,則傳回值為數組中的元素數量。

  • json是一個JSON OBJECT,則傳回值為對象中的成員數量。

  • json資料為JSON ARRAY和JSON OBJECT以外的類型,均返回1。

  • jsonjson_path為null時,返回null。

  • 該函數不考慮嵌套數組或對象的長度。

使用樣本

  • 樣本1:基本樣本。

    -- 返回2。
    SELECT JSON_LENGTH(JSON '{"k1":"v31","k2":300}');
    
    -- 返回6。
    SELECT JSON_LENGTH(JSON '[1,2,3,4,5,6]');
    
    -- 返回3。不考慮嵌套數組或對象的長度。
    SELECT 
      JSON_LENGTH(
        JSON '{"name": "John", "age": 22, "skills":["PHP","MySQL","JavaScript"]}'
      );
    
    -- 返回2。
    SELECT JSON_LENGTH(JSON '{"x": 1, "y": [1, 2]}', '$.y');
    
    -- 返回null。
    SELECT JSON_LENGTH(null);
  • 樣本2:json資料為JSON ARRAY和JSON OBJECT以外的類型,均返回1。

    -- 返回1。
    SELECT JSON_LENGTH(JSON 'null');
    
    -- 返回1。
    SELECT JSON_LENGTH(JSON '123');
    
    -- 返回1。
    SELECT JSON_LENGTH(JSON '123.34');
    
    -- 返回1。
    SELECT JSON_LENGTH(JSON 'true');

相關函數

JSON_LENGTH函數屬於JSON函數,更多JSON類型函數請參見JSON函數