Mengganti nilai atau menambahkan nilai ke posisi tertentu dalam file JSON.
Sintaksis
JSON json_set(JSON <input>, ARRAY STRING <path>, JSON <value>, BOOLEAN <create_if_missing>);Parameter
input: Wajib. Menentukan data JSON tempat Anda ingin mengganti nilai. Nilai parameter ini dapat berupa tipe JSON ARRAY atau JSON OBJECT.
path: Wajib. Menentukan posisi untuk mengganti nilai. Nilai parameter ini adalah tipe ARRAY<STRING>. Setiap nilai dalam array menunjukkan tingkat jalur bersarang. Jika file JSON memiliki n tingkat jalur bersarang, parameter path berisi n nilai.
value: Wajib. Menentukan nilai JSON yang akan digunakan untuk mengganti nilai.
create_if_missing: Wajib. Menentukan apakah akan menambahkan nilai ke file JSON jika tidak ada nilai pada posisi yang ditentukan. Nilai valid:
true
false (nilai default)
Nilai kembali
File JSON yang telah dimodifikasi dikembalikan.
Contoh
Contoh 1: Mengganti nilai pada posisi tertentu dalam file JSON.
select json_set(JSON'[{"f1":1,"f2":null},2,null,3]', array("0","f1"), JSON'[2,3,4]', false );Hasil berikut dikembalikan:
+-----+ | _c0 | +-----+ | [{"f1":[2,3,4],"f2":null},2,null,3] | +-----+Contoh 2: Mengganti nilai pada posisi tertentu dalam file JSON. Jika nilai tidak ada, penggantian tidak dilakukan.
select json_set(JSON'[{"f1":1,"f2":null},2,null,3]', array("0","f3"), JSON'[2,3,4]', false);Hasil berikut dikembalikan:
+-----+ | _c0 | +-----+ | [{"f1":1,"f2":null},2,null,3] | +-----+Contoh 3: Mengganti nilai pada posisi tertentu dalam file JSON. Jika nilai tidak ada, tambahkan nilai tersebut.
select json_set(JSON'[{"f1":1,"f2":null},2,null,3]', array("0","f3"), JSON'[2,3,4]', true);Hasil berikut dikembalikan:
+-----+ | _c0 | +-----+ | [{"f1":1,"f2":null,"f3":[2,3,4]},2,null,3] | +-----+