All Products
Search
Document Center

MaxCompute:JSON_STRIP_NULLS

Last Updated:Oct 23, 2025

Menghapus semua bidang atau elemen dengan nilai null dari objek JSON atau array JSON.

Sintaksis

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

Parameter

Parameter

Diperlukan

Deskripsi

json_expr

Ya

Tipe JSON. Objek JSON atau array JSON. Untuk informasi lebih lanjut, lihat Tipe data JSON.

include_arrays

Tidak

Tipe BOOLEAN. Menentukan apakah akan menghapus nilai null JSON dari array JSON. Nilai valid:

  • Jika Anda tidak menentukan parameter ini atau menyetel parameter ini ke TRUE (default), nilai null JSON dihapus.

  • Jika Anda menyetel parameter ini ke FALSE, nilai null JSON tidak dihapus.

remove_empty

Tidak

Tipe BOOLEAN. Menentukan apakah akan menghapus objek JSON kosong setelah nilai null JSON dihapus. Nilai valid:

  • Jika Anda tidak menentukan parameter ini atau menyetel parameter ini ke FALSE (default), objek JSON kosong tidak dihapus.

  • Nilai TRUE menunjukkan penghapusan.

Catatan

Jika nilai remove_empty adalah TRUE dan nilai include_arrays adalah TRUE atau dihilangkan, fungsi ini juga menghapus array JSON kosong.

json_path

Tidak

Tipe STRING. Untuk json_expr, fungsi ini menghapus nilai null JSON pada jalur yang ditentukan oleh json_path.

Catatan

Jika Anda menggunakan parameter json_path, Anda harus menentukan empat parameter input, dan json_path harus menjadi parameter input keempat.

Nilai kembali

Mengembalikan nilai bertipe JSON. Aturan berikut berlaku:

  • Jika suatu bidang dalam objek JSON memiliki nilai null, pasangan kunci-nilai terkait dihapus.

  • Jika objek JSON atau array yang dihasilkan kosong, fungsi mengembalikan JSON null.

  • Jika json_path adalah NULL atau tidak valid, json_expr dikembalikan tanpa perubahan.

  • Jika json_expr, include_arrays, atau remove_empty adalah NULL, fungsi mengembalikan NULL.

Contoh

  • Contoh 1: Menghapus nilai null dari objek JSON dan array JSON.

    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;

    Hasil berikut dikembalikan:

    +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+
    | 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}    |
    +------------+------------+------------+-----------------+------------+------------+---------------------------+------------+
  • Contoh 2: Menghapus objek kosong pada jalur JSON tertentu.

    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;

    Hasil berikut dikembalikan:

    {"person":{"name":"Alice","phone":null,"address":{"city":"New York"}},"company":{"name":"Acme Corp","location":null}}
  • Contoh 3: Jika json_path tidak valid, fungsi mengembalikan json_expr tanpa melakukan operasi apa pun.

    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;

    Hasil berikut dikembalikan:

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

Fungsi terkait

JSON_STRIP_NULLS merupakan fungsi JSON. Untuk informasi lebih lanjut tentang fungsi JSON, lihat Fungsi JSON.