All Products
Search
Document Center

MaxCompute:Dokumen

Last Updated:Mar 26, 2026

Menyisipkan nilai JSON ke dalam array atau objek JSON pada posisi yang ditentukan.

Sintaks

JSON json_insert(JSON <input>, ARRAY STRING <path>, JSON <value>, BOOLEAN <insert_after>);

Parameter

ParameterWajibTipeDeskripsi
inputYaJSON array atau JSON objectDokumen JSON yang akan disisipi.
pathYaARRAY STRINGPosisi tempat nilai tersebut akan disisipkan.
valueYaJSONNilai JSON yang akan disisipkan.
insert_afterYaBooleanMengontrol arah penyisipan ketika input berisi array dan elemen pada path sudah ada. true menyisipkan setelah posisi tersebut; false menyisipkan sebelumnya. Nilai default: false.

Nilai kembalian

Mengembalikan dokumen JSON yang telah dimodifikasi.

Catatan penggunaan

Aturan penyisipan array: Saat menyisipkan ke dalam array, misalkan n adalah panjang array dan m adalah indeks target yang ditentukan dalam path:

KondisiPerilaku
m >= nDitambahkan di akhir array
m < -nDitambahkan di awal array
-n <= m < nDisisipkan pada posisi m, relatif terhadap insert_after
input tidak berisi arrayDisisipkan di akhir secara default

Contoh

Menyisipkan ke dalam objek JSON

Tambahkan kunci t3 ke dalam objek bersarang f2:

SELECT json_insert(
  JSON'{"f1":1,"f2":{"t1":1,"t2":2}}',
  array("f2","t3"),
  JSON'3',
  false
);

Hasil: {"f1":1,"f2":{"t1":1,"t2":2,"t3":3}}

Menyisipkan ke dalam array JSON

Semua contoh berikut menggunakan {"f1":[0,1,2]} sebagai input. Array tersebut memiliki panjang 3, sehingga n = 3.

Menyisipkan sebelum atau setelah indeks tertentu (-n <= m < n):

-- Sisipkan 10 sebelum indeks 0 (insert_after = false)
SELECT json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', false);
-- Hasil: {"f1":[10,0,1,2]}

-- Sisipkan 10 setelah indeks 0 (insert_after = true)
SELECT json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', true);
-- Hasil: {"f1":[0,10,1,2]}

-- Sisipkan 10 sebelum indeks 1 (insert_after = false)
SELECT json_insert(JSON'{"f1":[0,1,2]}', array("f1","1"), JSON'10', false);
-- Hasil: {"f1":[0,10,1,2]}

Menambahkan di akhir (m >= n, indeks 4 >= panjang 3):

SELECT json_insert(JSON'{"f1":[0,1,2]}', array("f1","4"), JSON'4', false);
-- Hasil: {"f1":[0,1,2,4]}

Menambahkan di awal (m < -n, indeks -4 < -3):

SELECT json_insert(JSON'{"f1":[0,1,2]}', array("f1","-4"), JSON'4', false);
-- Hasil: {"f1":[4,0,1,2]}