All Products
Search
Document Center

MaxCompute:Fungsi JSON

Last Updated:Apr 29, 2026

MaxCompute mendukung empat tipe data kompleks: ARRAY, MAP, STRUCT, dan JSON. Topik ini menjelaskan fungsi dan fitur tipe data JSON.

Indeks

Fungsi

Fitur

FROM_JSON

Mengembalikan tipe ARRAY, MAP, atau STRUCT dari string JSON berdasarkan format output yang ditentukan.

GET_JSON_OBJECT

Mengekstrak string dari string JSON menggunakan path yang ditentukan.

JSON_ARRAY

Mengubah objek JSON, yang dapat kosong, menjadi array JSON yang berisi objek tersebut.

JSON_CONTAINS

Memeriksa apakah dokumen JSON berisi elemen JSON tertentu.

JSON_EXISTS

Memeriksa apakah JSONPath tertentu ada dalam dokumen JSON.

JSON_EXPLODE

Melebarkan setiap elemen dalam array JSON atau objek JSON menjadi beberapa baris.

JSON_EXTRACT

Mengekstrak data dari string JSON atau tipe data JSON berdasarkan JSONPath yang ditentukan.

JSON_FORMAT

Mengonversi tipe data JSON ke string. Output tidak diformat secara cantik (prettified) secara default.

JSON_INSERT

Menyisipkan nilai JSON pada posisi tertentu dalam dokumen JSON.

JSON_LENGTH

Mengembalikan panjang data JSON pada path yang ditentukan.

JSON_OBJECT

Menghasilkan objek JSON dari pasangan kunci-nilai.

JSON_PARSE

Mengonversi string ke tipe data JSON. Error dikembalikan jika string tidak dalam format JSON yang valid.

JSON_PRETTY

Memformat string JSON agar lebih mudah dibaca dengan menambahkan jeda baris dan spasi.

JSON_SET

Mengganti nilai yang sudah ada atau menambahkan nilai baru pada path tertentu dalam dokumen JSON.

JSON_STRIP_NULLS

Menghapus semua bidang atau elemen yang nilainya null dari objek JSON atau array JSON.

JSON_TUPLE

Mengekstrak string dari string JSON standar untuk sekelompok kunci tertentu.

JSON_TYPE

Mengembalikan nama tipe dari nilai JSON.

JSON_UNQUOTE

Menghapus tanda kutip dari string JSON.

JSON_VALID

Memeriksa apakah string merupakan JSON yang valid.

TO_JSON

Mengonversi tipe data kompleks tertentu ke string JSON.

Catatan penggunaan

Catatan penggunaan

  • Persyaratan versi SDK

    • Hanya mendukung Java SDK V0.44.0 dan versi yang lebih baru.

    • Hanya mendukung PyODPS V0.11.4.1 dan versi yang lebih baru.

  • Batasan operasi tabel

    • Kolom JSON tidak dapat ditambahkan ke tabel.

    • Tabel terklaster (clustered tables) tidak didukung.

    • Tabel bertipe Delta Table tidak didukung.

  • Batasan operasi SQL

    • Operasi perbandingan pada tipe JSON tidak didukung.

    • Klausa ORDER BY atau GROUP BY tidak dapat digunakan pada tipe JSON. Kolom bertipe JSON juga tidak dapat digunakan sebagai kunci JOIN.

  • Presisi data

    • Bagian integer dari NUMBER JSON disimpan sebagai tipe BIGINT. Overflow terjadi jika nilai integer berada di luar rentang BIGINT.

    • Bagian desimal dari NUMBER JSON disimpan sebagai tipe DOUBLE. Kehilangan presisi dapat terjadi saat bagian desimal dikonversi ke tipe DOUBLE.

  • Batasan karakter: Karakter Unicode \u0000 tidak didukung dalam string yang digunakan untuk menghasilkan data JSON.

  • Kompatibilitas engine: Tipe data JSON tidak dapat dibaca jika Anda menggunakan engine lain, seperti Hologres, untuk membaca data dari tabel.

  • UDF Java dan UDF Python tidak mendukung tipe JSON.

  • Tipe data JSON dapat bersarang hingga kedalaman 20 level.

  • Alat pengembangan

    Alat pengembangan yang didukung meliputi klien MaxCompute (odpscmd), MaxCompute Studio, dan DataWorks. Ekosistem eksternal seperti Dataphin tidak didukung. Jika Anda ingin menggunakan tipe data JSON dengan sistem eksternal, pastikan kompatibilitasnya terlebih dahulu. Saat menggunakan klien odpscmd, perhatikan hal berikut:

    • Upgrade klien ke V0.46.5 atau versi yang lebih baru. Jika tidak, perintah DESC json_table tidak dapat dijalankan dan data JSON tidak dapat diunduh menggunakan Tunnel.

    • Dalam file conf\odps_config.ini di path instalasi klien, atur parameter use_instance_tunnel ke false. Jika tidak, kueri akan gagal.

Referensi

Untuk informasi selengkapnya tentang tipe data JSON, lihat Tipe data JSON.