All Products
Search
Document Center

MaxCompute:TO_JSON

Last Updated:Oct 23, 2025

Mengonversi tipe kompleks yang ditentukan expr menjadi string dalam format JSON.

Sintaksis

STRING TO_JSON(<expr>)

Parameter

expr: Diperlukan. Ekspresi dengan tipe data kompleks. Tipe data harus berupa ARRAY, MAP, atau STRUCT.

Jika inputnya adalah tipe STRUCT (struct<key1:value1, key2:value2):

  • Ketika tipe STRUCT dikonversi ke string JSON, semua kunci diubah menjadi huruf kecil.

  • Jika sebuah value adalah NULL, kelompok data yang mengandung value tidak disertakan dalam output. Contohnya, jika value2 adalah NULL, key2:value2 tidak disertakan dalam string JSON hasil.

  • Anda dapat menjalankan perintah SET odps.sql.bigquery.compatible=true; untuk mengaktifkan mode kompatibel BigQuery. Dalam mode ini, jika sebuah value adalah NULL, pasangan kunci-nilai yang sesuai tetap disertakan dalam output. Contohnya, jika value2 adalah NULL, key2:NULL disertakan dalam output.

Nilai kembali

Mengembalikan string dalam format JSON.

Contoh

  • Contoh 1: Mengonversi tipe kompleks menjadi string JSON. Perintah contoh:

    -- Mengembalikan {"a":1,"b":2}.
    SELECT TO_JSON(NAMED_STRUCT('a', 1, 'b', 2));
    -- Mengembalikan {"time":"26/08/2015"}.
    SELECT TO_JSON(NAMED_STRUCT('time', "26/08/2015"));
    -- Mengembalikan [{"a":1,"b":2}].
    SELECT TO_JSON(ARRAY(NAMED_STRUCT('a', 1, 'b', 2)));
    -- Mengembalikan {"a":{"b":1}}.
    SELECT TO_JSON(MAP('a', NAMED_STRUCT('b', 1)));
    -- Mengembalikan {"a":1}.
    SELECT TO_JSON(MAP('a', 1));
    -- Mengembalikan [{"a":1}].
    SELECT TO_JSON(ARRAY((MAP('a', 1))));
  • Contoh 2: Menangani nilai NULL dalam ekspresi tipe STRUCT. Perintah contoh:

    -- Mengembalikan {"a":"B"}. Ketika tipe STRUCT dikonversi menjadi string JSON, semua kunci diubah menjadi huruf kecil.
    SELECT TO_JSON(NAMED_STRUCT("A", "B"));
    -- Mengembalikan {"k2":"v2"}. Kelompok data yang mengandung nilai NULL tidak disertakan dalam string JSON hasil.
    SELECT TO_JSON(NAMED_STRUCT("k1", CAST(NULL AS STRING), "k2", "v2"));
  • Contoh 3: Mengonversi ekspresi tipe STRUCT yang mengandung nilai NULL dalam mode kompatibel BigQuery. Perintah contoh:

    -- Mengembalikan {"k1":null,"k2":"v2"}
    SET odps.sql.bigquery.compatible=true;
    SELECT TO_JSON(named_struct("k1", CAST(NULL AS STRING), "k2", "v2"));
    
    -- Mengembalikan {"id":null,"tag":null,"group":null,"success":true}
    SET odps.sql.bigquery.compatible=true;
    SELECT TO_JSON(struct(experiment_id AS id,tag  AS tag,`group`,`success`)) AS experiment_in_json
      FROM(
        SELECT CAST(NULL AS string) AS experiment_id,
        CAST(NULL AS string) AS tag,
        CAST(NULL AS string) AS `group`,
        TRUE AS `success`
    );