All Products
Search
Document Center

MaxCompute:FROM_JSON

Last Updated:Jul 06, 2025

Mengembalikan data tipe ARRAY, MAP, atau STRUCT berdasarkan string JSON yang ditentukan oleh jsonStr dan format keluaran yang ditentukan oleh schema.

Sintaksis

from_json(<jsonStr>, <schema>)

Parameter

  • jsonStr: Wajib. String JSON yang dimasukkan.

  • schema: Wajib. Skema dari string JSON. Nilai parameter ini harus dalam format yang sama dengan pernyataan untuk membuat tabel, seperti array<bigint>, map<string, array<string>>, atau struct<a:int, b:double, `C`:map<string,string>>.

    Catatan

    Kunci dalam sebuah struct bersifat peka huruf besar-kecil. Anda juga dapat menentukan struct dalam format a BIGINT, b DOUBLE, yang setara dengan STRUCT<a:BIGINT, b:DOUBLE>.

    Tabel berikut menjelaskan pemetaan antara tipe data JSON dan tipe data MaxCompute.

    Tipe data JSON

    Tipe data MaxCompute

    OBJECT

    STRUCT, MAP, dan STRING

    ARRAY

    ARRAY dan STRING

    NUMBER

    TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL, dan STRING

    BOOLEAN

    BOOLEAN dan STRING

    STRING

    STRING, CHAR, VARCHAR, BINARY, DATE, dan DATETIME

    NULL

    Semua tipe

    Catatan

    String JSON tipe OBJECT dan ARRAY diuraikan sebanyak mungkin. Jika tipe data string JSON tidak dipetakan ke tipe data MaxCompute apa pun, string JSON tersebut akan diabaikan. Untuk kemudahan penggunaan, semua tipe data JSON dapat dikonversi menjadi tipe data STRING yang didukung oleh MaxCompute. Saat mengonversi string JSON menjadi nilai tipe FLOAT, DOUBLE, atau DECIMAL, presisi tempat desimal dari nilai tersebut tidak dapat dijamin. Kami menyarankan menggunakan fungsi GET_JSON_OBJECT atau mengonversi string JSON menjadi nilai tipe STRING terlebih dahulu, lalu mengonversi hasilnya menjadi nilai tipe FLOAT, DOUBLE, atau DECIMAL.

Nilai kembali

Mengembalikan nilai tipe ARRAY, MAP, atau STRUCT.

FROM_JSON

  • Contoh 1: Mengonversi string JSON tertentu menjadi nilai tipe data tertentu. Pernyataan contoh:

    -- Nilai kembali adalah {a:1,b:0.8}. 
    select from_json('{"a":1, "b":0.8}', 'a int, b double');
    
    -- Nilai kembali adalah {time:26/08/2015}. 
    select from_json('{"time":"26/08/2015"}', 'time string');
    
    -- Nilai kembali adalah {a:1, b:0.8, c:NULL}. 
    select from_json('{"a":1, "b":0.8}', 'a int, b double, c string');
    
    -- Nilai kembali adalah [1,2,3]. 
    select from_json('[1, 2, 3, "a"]', 'array<bigint>');
    
    -- Nilai kembali adalah {a:1, b:[1,2,3], c:{}, d:v}. 
    select from_json('{"a":1,"b":[1,2,3],"c":{},"d":"v"}', 'map<string, string>');
  • Contoh 2: Gunakan fungsi map_keys dan from_json untuk mendapatkan semua kunci dalam string JSON. Anda juga dapat menggunakan JSON_KEYS untuk tujuan yang sama. Pernyataan contoh:

    -- Nilai kembali adalah [a, b]. 
    select map_keys(from_json('{"a":1,"b":2}','map<string,string>'));

Fungsi terkait

FROM_JSON adalah fungsi tipe kompleks atau fungsi string.

  • Untuk informasi lebih lanjut tentang fungsi yang digunakan untuk memproses data tipe data kompleks, seperti ARRAY, MAP, STRUCT, dan JSON, lihat Fungsi Tipe Kompleks.

  • Untuk informasi lebih lanjut tentang fungsi terkait pencarian dan konversi string, lihat Fungsi String.