All Products
Search
Document Center

Simple Log Service:Fungsi JSON

Last Updated:Jun 22, 2026

Topik ini mencakup sintaks dasar fungsi JSON beserta contohnya.

SLS mendukung fungsi JSON berikut.

Penting
  • Dalam pernyataan kueri Log Service, sertakan string dalam tanda kutip tunggal (''). Log Service menginterpretasikan karakter tanpa tanda kutip atau karakter dalam tanda kutip ganda ("") sebagai nama field atau nama kolom. Misalnya, 'status' merepresentasikan string status, sedangkan status atau "status" merepresentasikan field log bernama status.

  • Untuk memperluas nilai field log berformat JSON menjadi beberapa baris, gunakan klausa UNNEST. Untuk informasi selengkapnya, lihat UNNEST clause.

  • Jika string gagal diurai sebagai JSON, fungsi tersebut mengembalikan null.

  • Jika log JSON terpotong selama pengumpulan, menganalisisnya dengan fungsi JSON akan mengembalikan error dan menghentikan kueri. Untuk menangani error ini, bungkus pemanggilan fungsi dalam ekspresi TRY untuk menangkap pengecualian dan memungkinkan kueri dilanjutkan. Misalnya, * | select message, try(json_parse(message)). Untuk informasi selengkapnya, lihat TRY expression.

Nama Fungsi

Sintaks

Deskripsi

Dukungan SQL

Dukungan SPL

json_array_contains function

json_array_contains(x, value)

Memeriksa apakah array JSON berisi nilai tertentu.

json_array_get function

json_array_get(x, index)

Mengembalikan elemen pada indeks tertentu dalam array JSON.

×

json_array_length function

json_array_length(x)

Mengembalikan jumlah elemen dalam array JSON.

json_extract function

json_extract(x, json_path)

Mengekstraksi objek JSON atau array JSON dari objek JSON atau array JSON.

json_extract_scalar function

json_extract_scalar(x, json_path)

Mengekstraksi nilai skalar, seperti string, integer, atau nilai boolean, dari objek JSON atau array JSON.

json_extract_bool function

json_extract_bool(x, json_path)

Mengekstraksi nilai boolean dari objek JSON atau array JSON.

×

json_extract_long function

json_extract_long(x, json_path)

Mengekstraksi nilai bigint dari objek JSON atau array JSON.

×

json_extract_double function

json_extract_double(x, json_path)

Mengekstraksi nilai double dari objek JSON atau array JSON.

×

json_format function

json_format(x)

Memformat nilai JSON menjadi string.

json_parse function

json_parse(x)

Mengurai string menjadi nilai JSON.

json_size function

json_size(x, json_path)

Mengembalikan jumlah elemen dalam array JSON atau jumlah pasangan kunci-nilai dalam objek JSON.

json_object_flatten function

json_object_flatten(x)

Meratakan objek JSON menjadi struktur kunci-nilai satu lapis.

×

Json_array_contains

Fungsi json_array_contains memeriksa apakah array JSON berisi nilai tertentu.

Sintaks

json_array_contains(x, value)

Parameter

Parameter

Deskripsi

x

Array JSON.

value

Nilai yang dicari dalam array JSON.

Tipe nilai kembalian

boolean

Contoh

Periksa apakah array JSON [1, 2, 3] berisi nilai 2.

  • Pernyataan kueri (Test)

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • Kueri mengembalikan true karena array JSON [1, 2, 3] berisi 2.

json_array_get function

Mengembalikan elemen pada indeks tertentu dalam array JSON.

Sintaks

json_array_get(x, index)

Parameter

Parameter

Deskripsi

x

Array JSON.

index

Indeks elemen berbasis nol.

Tipe kembalian

varchar

Contoh

Mengembalikan elemen pada indeks 1 dari array JSON ["a", [3, 9], "c"].

  • Pernyataan kueri (Test)

    * | SELECT json_array_get('["a", [3, 9], "c"]', 1)
  • Hasil kueri adalah [3,9].

json_array_length function

Menghitung jumlah elemen dalam array JSON.

Sintaks

json_array_length(x)

Parameter

Parameter

Deskripsi

x

Array JSON sumber.

Tipe nilai kembalian

bigint

Contoh

  • Contoh 1: Menghitung jumlah elemen array JSON dalam field Results.

    • Field contoh

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • Pernyataan kueri dan analisis

      * | SELECT json_array_length(Results)
    • Hasilnya adalah 2.

  • Contoh 2: Menghitung jumlah elemen array JSON dalam field time.

    • Field contoh

      time:["time_local","request_time","upstream_response_time"]
    • Pernyataan kueri dan analisis

      * | SELECT json_array_length(time)
    • Hasilnya adalah 3.

Json_extract function

Fungsi json_extract mengekstraksi nilai JSON, seperti objek JSON atau array JSON, dari objek JSON atau array JSON.

Penting

Fungsi json_extract mengembalikan error untuk tipe JSON yang tidak valid. Gunakan fungsi json_extract_scalar sebagai gantinya.

Sintaks

json_extract(x, json_path)

Parameter

Parameter

Deskripsi

x

Objek JSON atau array JSON.

json_path

Jalur JSON, seperti $.store.book[0].title. Untuk detailnya, lihat Set the json_path.

Tipe nilai kembalian

String berformat JSON.

Contoh

SQL

Mengekstraksi nilai field EndTime dari field Results.

  • Data contoh

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Pernyataan kueri

    * | SELECT json_extract(Results, '$.0.EndTime')
  • Kueri mengembalikan 1626314920.

SPL

Mengekstraksi nilai field EndTime dari field Results.

  • Data contoh

Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Pernyataan SPL

* | extend a = json_extract(Results, '$.0.EndTime')
  • Hasil SPL

Hasilnya mencakup field a yang diatur ke 1626314920.

json_extract_scalar

Fungsi json_extract_scalar mengekstraksi nilai skalar (string, integer, atau Boolean) dari objek JSON atau array JSON.

Sintaks

json_extract_scalar(x, json_path)

Parameter

Parameter

Deskripsi

x

Objek JSON atau array JSON.

json_path

Jalur JSON, seperti $.store.book[0].title. Untuk informasi selengkapnya, lihat Set the json_path.

Tipe kembalian

varchar

Contoh

SQL

Mengekstraksi nilai field RawResultCount dari field Results, mengonversi nilainya ke bigint, lalu menghitung jumlahnya.

  • Data contoh

    Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Pernyataan kueri

    * | SELECT sum(cast(json_extract_scalar(Results,'$.1.RawResultCount') AS bigint) )
  • Hasil kueri adalah 288.

SPL

Mengekstraksi nilai field RawResultCount dari field Results.

  • Data contoh

Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Pernyataan SPL

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • Nilai field a adalah 1.

json_extract_bool

Mengekstraksi nilai boolean dari objek JSON atau array JSON. Mengembalikan null jika ekstraksi gagal.

Sintaks

json_extract_bool(x, json_path)

Parameter

Parameter

Deskripsi

x

Objek JSON atau array JSON.

json_path

Jalur JSON, seperti $.store.book[0].title. Untuk informasi selengkapnya, lihat Set the json_path.

Tipe nilai kembalian

boolean

Contoh

Mengekstraksi nilai boolean dari array JSON Results.

  • Field contoh

    Results:[{"ret":true},{"status":FALSE}]
  • Pernyataan kueri

    * | SELECT json_extract_bool(Results, '$.0.ret')
  • Hasil kueri

    Kueri mengembalikan true.

json_extract_long

Mengekstraksi nilai bigint dari objek JSON atau array JSON. Mengembalikan null jika ekstraksi gagal.

Sintaks

json_extract_long(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai JSON.

json_path

Jalur JSON, seperti $.store.book[0].title. Untuk informasi selengkapnya, lihat Set the json_path.

Nilai kembalian

bigint

Contoh

Contoh ini mengekstraksi nilai bigint dari array JSON Results.

  • Field contoh

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Pernyataan kueri

    * | SELECT json_extract_long(Results, '$.0.EndTime')
  • Hasil kueri

    Mengembalikan 1626314920.

Json_extract_double

Mengekstraksi nilai double dari objek JSON atau array JSON. Mengembalikan null jika ekstraksi gagal.

Sintaks

json_extract_double(x, json_path)

Parameter

Parameter

Deskripsi

x

Objek JSON atau array JSON.

json_path

Jalur JSON, seperti $.store.book[0].title. Untuk detailnya, lihat How to set json_path.

Tipe kembalian

double

Contoh

Mengekstraksi nilai double dari array JSON Results.

  • Field contoh

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Pernyataan kueri dan analisis

    * | SELECT json_extract_double(Results, '$.0.EndTime')
  • Hasil kueri dan analisis

    Kueri mengembalikan 1626314920.0.

json_format function

Fungsi json_format memformat nilai JSON sebagai string.

Sintaks

json_format(x)

Parameter

Parameter

Deskripsi

x

Nilai JSON.

Tipe kembalian

Varchar.

Contoh

Mengonversi array JSON [1,2,3] menjadi string '[1, 2, 3]'.

  • Pernyataan kueri (Test)

    * | SELECT json_format(json_parse('[1, 2, 3]'))
  • Hasil kueri adalah '[1, 2, 3]'.

json_parse function

Fungsi json_parse mengonversi string ke tipe JSON, sekaligus memvalidasi formatnya. Namun, fungsi ini memiliki penggunaan terbatas. Untuk mengekstraksi nilai dari string JSON, gunakan fungsi json_extract_scalar.

Sintaks

json_parse(x)

Parameter

Parameter

Deskripsi

x

Ekspresi string.

Tipe nilai kembalian

Tipe JSON.

Contoh

SQL

  • Contoh 1

    Mengonversi string '[1, 2, 3]' menjadi array JSON [1, 2, 3].

    • Pernyataan kueri (Test)

       * | SELECT json_parse('[1, 2, 3]')
    • Hasil kueri adalah [1, 2, 3].

  • Contoh 2

    Mengekstraksi kunci dari field logging.

    • Contoh ini memproses field logging, yang merupakan objek JSON yang berisi pasangan kunci-nilai seperti message, processName, thread, threadName, module, funcName, levelname, dan process.

    • Pernyataan kueri (Test)

      *| SELECT map_keys(try_cast(json_parse(logging) AS map(varchar, json)))
    • Hasil kueri adalah ["funcName","levelname","message","module","process","processName","thread","threadName"].

SPL

Mengonversi string '[1, 2, 3]' menjadi array JSON [1, 2, 3].

  • Pernyataan SPL

 * | extend a = json_parse('[1, 2, 3]')
  • Hasil SPL

Nilai field a adalah [1, 2, 3].

json_size function

Fungsi json_size mengembalikan jumlah elemen dalam objek JSON atau array JSON.

Sintaks

json_size(x, json_path)

Parameter

Parameter

Deskripsi

x

Objek JSON atau array JSON.

json_path

Jalur JSON, seperti $.store.book[0].title. Untuk informasi selengkapnya, lihat Set the json_path.

Tipe nilai kembalian

bigint

Contoh

Contoh ini menghitung jumlah elemen dalam field RawResults.

  • Field contoh

    Results:[{"EndTime":1626314920,"FireResult":2,"RawResults":[{"_col0":"1094"}]}]
  • Pernyataan kueri

    * | SELECT json_size(Results, '$.0.RawResults')
  • Hasil kueri adalah 1.

json_object_flatten function

Meratakan objek JSON menjadi struktur kunci-nilai satu lapis.

Sintaks

json_object_flatten(x)

Parameter

Parameter

Deskripsi

x

Menentukan nilai JSON yang akan diratakan. Fungsi mengembalikan null jika input bukan objek JSON.

Tipe nilai kembalian

map(varchar, varchar)

Contoh

Meratakan objek JSON dalam field 'content' menjadi struktur kunci-nilai satu lapis.

  • Field contoh

    content: '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}'
  • Pernyataan kueri

    select json_object_flatten(content) as data from  (values '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}') t (content) limit 1;
  • Output

    Nilai field data adalah {"Time":"1626314920","Info":"[{\"count\":\"1\"}]","Body":"this is test"}. Ini menunjukkan bahwa objek JSON asli telah diratakan menjadi struktur kunci-nilai satu lapis.