すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:JSON_LENGTH

最終更新日:Dec 26, 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 配列の場合、関数は配列内の要素数を返します。

  • json が JSON オブジェクトの場合、関数はオブジェクト内のメンバー数を返します。

  • json データが JSON 配列でも JSON オブジェクトでもない場合、関数は 1 を返します。

  • json または json_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 配列でも JSON オブジェクトでもない場合、関数は 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 関数」をご参照ください。