All Products
Search
Document Center

MaxCompute:JSON_SET

Last Updated:Jun 19, 2025

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] |
    +-----+