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

MaxCompute:JSON_STRIP_NULLS

最終更新日:Oct 23, 2025

JSON オブジェクトまたは JSON 配列から、値が null のすべてのフィールドまたは要素を削除します。

構文

JSON JSON_STRIP_NULLS(
  JSON <json_expr>
  [, BOOLEAN <include_arrays> ]
  [, BOOLEAN <remove_empty> ]
  [, STRING <json_path> ]
)

パラメーター

パラメーター

必須

説明

json_expr

はい

JSON 型。 JSON オブジェクトまたは JSON 配列。 詳細については、「JSON データ型」をご参照ください。

include_arrays

いいえ

BOOLEAN 型。 JSON 配列から JSON null 値を削除するかどうかを指定します。 有効な値:

  • このパラメーターを指定しないか、このパラメーターを TRUE (デフォルト) に設定した場合、JSON null 値は削除されます。

  • このパラメーターを FALSE に設定した場合、JSON null 値は削除されません。

remove_empty

いいえ

BOOLEAN 型。 JSON null 値が削除された後、空の JSON オブジェクトを削除するかどうかを指定します。 有効な値:

  • このパラメーターを指定しないか、このパラメーターを FALSE (デフォルト) に設定した場合、空の JSON オブジェクトは削除されません。

  • TRUE の値は削除を示します。

説明

remove_empty の値が TRUE で、include_arrays の値が TRUE であるか省略された場合、この関数は空の JSON 配列も削除します。

json_path

いいえ

STRING 型。 json_expr について、この関数は json_path で指定されたパスにある JSON null 値を削除します。

説明

json_path パラメーターを使用する場合、4 つの入力パラメーターを指定する必要があり、json_path は 4 番目の入力パラメーターである必要があります。

戻り値

JSON 型の値を返します。 以下のルールが適用されます。

  • JSON オブジェクトのフィールドに null 値がある場合、関連付けられたキーと値のペアは削除されます。

  • 結果の JSON オブジェクトまたは配列が空の場合、関数は JSON null を返します。

  • json_path が NULL または無効な場合、json_expr が返されます。

  • json_exprinclude_arrays、または remove_empty が NULL の場合、NULL が返されます。

  • 例 1: JSON オブジェクトと JSON 配列から null 値を削除します。

    SELECT 
      JSON_STRIP_NULLS(NULL) AS json_data1,
      JSON_STRIP_NULLS(JSON 'null') AS json_data2,
      JSON_STRIP_NULLS(JSON '[1, null, 2, null]') AS json_data3,
      JSON_STRIP_NULLS(JSON '[1, null, 2, null]', FALSE) AS json_data4,
      JSON_STRIP_NULLS(JSON '[1, null, 2, null, [null]]',TRUE,TRUE) AS json_data5,
      JSON_STRIP_NULLS(JSON '[1, null, 2, null, [null]]',NULL,TRUE) AS json_data6,
      JSON_STRIP_NULLS(
        JSON '{"a": {"b": {"c": null}}, "d": [null], "e": [], "f": 1}',
        FALSE,TRUE) AS json_data7,
      JSON_STRIP_NULLS(
        JSON '{"a": {"b": {"c": null}}, "d": [null], "e": [], "f": 1}',
        TRUE,TRUE) AS json_data8;

    次の結果が返されます。

    +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+
    | json_data1 | json_data2 | json_data3 | json_data4      | json_data5 | json_data6 | json_data7                | json_data8 |
    +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+
    | NULL       | null       | [1,2]      | [1,null,2,null] | [1,2]      | NULL       | {"d":[null],"e":[],"f":1} | {"f":1}    |
    +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+
  • 例 2: 指定された JSON パスで空のオブジェクトを削除します。

    SELECT JSON_STRIP_NULLS(
      JSON '{
        "person": {
            "name": "Alice", 
            "address": {
                "street": null, 
                "city": "New York",
                "zip": null
             }, 
             "phone": null
         }, 
         "company": {
           "name": "Acme Corp", 
           "location": null
           }
      }',
      true,
      true, 
      '$.person.address'
    ) AS json_data;

    次の結果が返されます。

    {"person":{"name":"Alice","phone":null,"address":{"city":"New York"}},"company":{"name":"Acme Corp","location":null}}
  • 例 3: json_path が無効な場合、関数は操作を実行せずに json_expr を返します。

    SELECT JSON_STRIP_NULLS(
      JSON '{
        "person": {
            "name": "Alice", 
            "address": {
                "street": null, 
                "city": "New York", 
                "zip": null
              }, 
              "phone": null
         }, 
         "company": {
            "name": "Acme Corp", 
            "location": null
          },
          "uid":null
      }',
      true,
      true, 
      '$person.a'
    ) AS json_data;

    次の結果が返されます。

    {"uid":null,"person":{"name":"Alice","phone":null,"address":{"zip":null,"city":"New York","street":null}},"company":{"name":"Acme Corp","location":null}}

関連関数

JSON_STRIP_NULLS は JSON 関数です。 JSON 関数の詳細については、「JSON 関数」をご参照ください。