All Products
Search
Document Center

MaxCompute:JSON_EXPLODE

Last Updated:Jun 19, 2025

Fungsi JSON_EXPLODE MaxCompute digunakan untuk memperluas setiap elemen dalam array JSON atau objek JSON menjadi beberapa baris rekaman. Topik ini memberikan penjelasan rinci tentang penggunaan fungsi JSON_EXPLODE beserta contohnya.

Format perintah

JSON_EXPLODE(JSON <var>)

Deskripsi parameter

var: Diperlukan. Mendukung tipe JSON_ARRAY atau JSON_OBJECT. Tidak mendukung konstanta JSON, STRING JSON, NUMBER JSON, BOOLEAN JSON, dan tipe NULL.

Deskripsi nilai kembalian

Fungsi mengembalikan baris yang telah ditransformasi dalam format berikut:

+-------+-------+
|  KEY  | VALUE |
|-------+-------|
  • Untuk tipe var JSON ARRAY, bagian terluar dari JSON ARRAY diperluas menjadi beberapa baris data JSON dengan KEY bernilai NULL dan VALUE sebagai elemen array.

  • Untuk tipe var JSON OBJECT, setiap pasangan KEY-VALUE dari bagian terluar JSON OBJECT diperluas menjadi baris dengan dua kolom: kolom KEY bertipe STRING adalah KEY dari JSON OBJECT, dan kolom VALUE bertipe JSON adalah VALUE dari JSON OBJECT.

Contoh

Buat tabel bernama table_json dan masukkan data ke dalamnya, di mana baris pertama adalah tipe JSON OBJECT dan baris kedua adalah tipe JSON ARRAY.

-- Buat tabel
CREATE TABLE table_json(c1 json);
-- Masukkan 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}');
-- Lihat data tabel
SELECT * FROM table_json;

Kueri mengembalikan hasil berikut:

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

Fungsi JSON_EXPLODE memperluas setiap elemen dalam array JSON atau objek JSON menjadi beberapa baris keluaran. Berikut adalah contoh kode:

SELECT JSON_EXPLODE(table_json.c1) FROM table_json;

Kueri mengembalikan hasil berikut:

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

Saat mentransformasi data JSON, elemen dalam data JSON yang sama mempertahankan urutan aslinya. Namun, urutan beberapa entri data JSON mungkin berbeda.