Tüm Ürünler
Search
Belge Merkezi

MaxCompute:JSON_EXPLODE

Son Güncelleme:Oct 04, 2026

MaxCompute JSON_EXPLODE işlevi, bir JSON dizisi veya JSON nesnesi içindeki her öğeyi birden fazla kayıt satırına açmak için tasarlanmıştır. Bu konuda JSON_EXPLODE işlevinin ayrıntılı kullanım talimatları ve örnekleri sunulmaktadır.

Komut biçimi

JSON_EXPLODE(JSON <var>)

Parametre açıklaması

var: Zorunludur. JSON_ARRAY veya JSON_OBJECT türlerini destekler. JSON sabitleri, JSON STRING, JSON NUMBER, JSON BOOLEAN ve NULL türlerini desteklemez.

Dönüş değeri açıklaması

İşlev, dönüştürülen satırları aşağıdaki biçimde döndürür:

+-------+-------+
|  KEY  | VALUE |
|-------+-------|
  • JSON ARRAY türündeki var değişkeni için, JSON ARRAY'in en dış katmanı birden fazla JSON veri satırına açılır; KEY sütunu NULL, VALUE sütunu ise dizi öğesidir.

  • JSON OBJECT türündeki var değişkeni için, JSON OBJECT'in en dış katmanındaki her anahtar-değer çifti iki sütunlu satırlara açılır: STRING türündeki KEY sütunu JSON OBJECT'in anahtarını, JSON türündeki VALUE sütunu ise JSON OBJECT'in değerini temsil eder.

Örnek

table_json adında bir tablo oluşturun ve içine veri ekleyin; ilk satır JSON OBJECT türünde, ikinci satır ise JSON ARRAY türündedir.

-- Create table
CREATE TABLE table_json(c1 json);
-- Insert data
INSERT INTO table_json(c1) SELECT JSON_OBJECT('a', 123,'b','hello');
INSERT INTO table_json(c1) SELECT JSON_ARRAY(1, true, 2, json'{"a":456}');
-- View table data
SELECT * FROM table_json;

Sorgu aşağıdaki sonucu döndürür:

+-----------------------------+
| c1                            |
+-------------------------------+
| {"a":123,"b":"hello"}         |
| [1,true,2,{"a":456}]          |
+-------------------------------+

JSON_EXPLODE işlevi, bir JSON dizisi veya JSON nesnesindeki her öğeyi birden fazla çıktı satırına açar. Aşağıda örnek kod yer almaktadır:

SELECT JSON_EXPLODE(table_json.c1) FROM table_json;

Sorgu aşağıdaki sonucu döndürür:

+-----+------------+
| key | value      |
+-----+------------+
| \N  | 1          |
| \N  | true       |
| \N  | 2          |
| \N  | {"a":456}  |
| a   | 123        |
| b   | hello      |
+-----+------------+
Not

JSON verilerini dönüştürürken, aynı JSON verisi içindeki öğeler orijinal sıralarını korur. Ancak, farklı JSON veri girişlerinin sırası değişebilir.