Tüm Ürünler
Search
Belge Merkezi

MaxCompute:JSON_INSERT

Son Güncelleme:Oct 04, 2026

Bir JSON belgesinde belirtilen konuma JSON değeri ekler.

Komut biçimi

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

Parametreler

  • input: Zorunludur. Değiştirilecek JSON içeriğidir. Bu parametre JSON ARRAY ve JSON OBJECT veri türlerini destekler.

  • path: Zorunludur. JSON içeriğinin ekleneceği konumu belirten yoldur.

  • value: Zorunludur. Eklenecek JSON içeriğidir.

  • insert_after: Zorunludur.

    • Giriş parametresi bir dizi içeriyorsa ve yol mevcut bir öğeyi işaret ediyorsa, bu parametre ekleme konumunu belirler:

      • true: Yeni değeri belirtilen öğeden sonra ekler.

      • false (varsayılan): Yeni değeri belirtilen öğeden önce ekler.

    • Not

      input parametresi bir diziyse JSON içeriği eklerken aşağıdaki kurallar geçerlidir. Bu kurallarda n dizinin uzunluğunu, m ise belirtilen ekleme konumunu temsil eder:

      • m >= n ise değer dizinin sonuna eklenir.

      • m < -n ise değer dizinin başına eklenir.

      • -n <= m < n ise yeni değerin konumu insert_after parametresine göre belirlenir.

    • Giriş parametresi bir dizi değilse değer varsayılan olarak sona eklenir.

Dönüş değeri

Değiştirilmiş JSON nesnesini döndürür.

Örnekler

  • Örnek 1: Belirtilen bir konuma yeni bir değer ekleyin.

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

    Aşağıdaki sonuç döndürülür.

    +-----+
    | _c0 |
    +-----+
    | {"f1":1,"f2":{"t1":1,"t2":2,"t3":3}} |
    +-----+
  • Örnek 2: Bir dizideki bir öğeden önce değer ekleyin.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', false);

    Aşağıdaki sonuç döndürülür.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[10,0,1,2]} |
    +-----+
  • Örnek 3: Bir dizideki bir öğeden sonra değer ekleyin.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","0"), JSON'10', true);

    Aşağıdaki sonuç döndürülür.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,10,1,2]} |
    +-----+
  • Örnek 4: Bir dizinin sonundaki indeksten daha büyük bir indekse değer ekleyin.

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

    Aşağıdaki sonuç döndürülür.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,1,2,4]} |
    +-----+
  • Örnek 5: Bir JSON dizisine, dizinin negatif uzunluğundan daha küçük bir indekste değer eklemek, değeri dizinin başına yerleştirir.

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

    Aşağıdaki sonuç döndürülür.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[4,0,1,2]} |
    +-----+
  • Örnek 6: Konum, dizi uzunluğunun negatifine eşit veya ondan büyük ve dizi uzunluğundan küçükse bir diziye belirtilen konuma değer ekleyebilirsiniz.

    select json_insert(JSON'{"f1":[0,1,2]}', array("f1","1"), JSON'10', false);

    Aşağıdaki sonuç döndürülür.

    +-----+
    | _c0 |
    +-----+
    | {"f1":[0,10,1,2]} |
    +-----+