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:
|
remove_empty | Tidak | Tipe BOOLEAN. Menentukan apakah akan menghapus objek JSON kosong setelah nilai null JSON dihapus. Nilai valid:
Catatan Jika nilai remove_empty adalah |
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_pathtidak valid, fungsi mengembalikanjson_exprtanpa 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.