All Products
Search
Document Center

MaxCompute:Fungsi JSON

Last Updated:Dec 31, 2025

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 jalur 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 yang ditentukan ada dalam dokumen JSON.

JSON_EXPLODE

Memperluas 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 menjadi string. Output tidak diformat 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 menjadi tipe data JSON. Kesalahan akan dikembalikan jika string tidak dalam format JSON yang valid.

JSON_PRETTY

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

JSON_SET

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

JSON_STRIP_NULLS

Menghapus semua bidang atau elemen dengan nilai null dari objek JSON atau array JSON.

JSON_TUPLE

Mengekstrak string dari string JSON standar untuk sekelompok kunci yang ditentukan.

JSON_TYPE

Mengembalikan nama tipe dari nilai JSON.

JSON_UNQUOTE

Menghapus tanda kutip dari string JSON.

JSON_VALID

Memeriksa apakah string adalah JSON yang valid.

TO_JSON

Mengonversi tipe data kompleks yang ditentukan menjadi string JSON.

Penerapan

  • 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 bertipe 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, dan kolom bertipe JSON tidak dapat digunakan sebagai kunci JOIN.

  • Presisi data

    • Bagian integer dari NUMBER JSON disimpan sebagai tipe BIGINT. Nilai integer di luar rentang BIGINT akan menyebabkan overflow.

    • Bagian desimal dari NUMBER JSON disimpan sebagai tipe DOUBLE. Konversi ke tipe DOUBLE dapat menyebabkan kehilangan presisi.

  • 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 mengakses 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 terlebih dahulu kompatibilitasnya. Saat menggunakan klien odpscmd, perhatikan hal berikut:

    • Anda harus memperbarui klien ke versi V0.46.5 atau lebih baru. Jika tidak, perintah DESC json_table tidak dapat dijalankan dan data JSON tidak dapat diunduh melalui Tunnel.

    • Pada 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.