全部产品
Search
文档中心

Simple Log Service:Fungsi JSON

更新时间:Nov 10, 2025

Topik ini menjelaskan sintaksis fungsi JSON dan menyediakan contoh penggunaannya.

Simple Log Service mendukung fungsi JSON berikut:

Penting
  • Dalam pernyataan kueri Layanan Log Sederhana, string harus diapit dengan tanda kutip tunggal (''). Karakter yang tidak diapit tanda kutip tunggal atau diapit tanda kutip ganda ("") akan diperlakukan sebagai nama bidang atau kolom. Sebagai contoh, 'status' merepresentasikan string 'status', sedangkan status atau "status" merepresentasikan bidang log bernama 'status'.

  • Jika nilai suatu bidang log berada dalam format JSON dan Anda perlu memperluasnya menjadi beberapa baris, gunakan sintaks UNNEST. Untuk informasi lebih lanjut, lihat Klausa UNNEST.

  • Jika string tidak dapat diurai sebagai JSON, fungsi akan mengembalikan nilai null.

  • Jika log JSON terpotong selama pengumpulan, menggunakan fungsi JSON padanya akan menyebabkan kesalahan dan menghentikan kueri. Untuk menangani kesalahan ini, Anda dapat menggunakan ekspresi TRY untuk menangkap pengecualian, sehingga kueri dapat dilanjutkan. Contohnya adalah * | select message, try(json_parse(message)). Untuk informasi lebih lanjut, lihat Ekspresi TRY.

Nama Fungsi

Sintaks

Deskripsi

Dukungan SQL

Dukungan SPL

Fungsi json_array_contains

json_array_contains(x, nilai)

Memeriksa apakah array JSON berisi nilai tertentu.

Fungsi json_array_get

json_array_get(x, indeks)

Mengembalikan elemen pada indeks tertentu dalam array JSON.

×

Fungsi json_array_length

json_array_length(x)

Menghitung jumlah elemen dalam array JSON.

Fungsi json_extract

json_extract(x, json_path)

Mengekstrak sekumpulan nilai JSON, yang bisa berupa array atau objek, dari objek JSON atau array JSON.

Fungsi json_extract_scalar

json_extract_scalar(x, json_path)

Mengekstrak sekumpulan nilai skalar, seperti string, integer, atau Boolean, dari objek JSON atau array JSON. Fungsi ini mirip dengan fungsi json_extract.

Fungsi json_extract_bool

json_extract_bool(x, json_path)

Mengekstrak nilai Boolean dari objek JSON atau array JSON.

×

Fungsi json_extract_long

json_extract_long(x, json_path)

Mengekstrak nilai bigint dari objek JSON atau array JSON.

×

Fungsi json_extract_double

json_extract_double(x, json_path)

Mengekstrak nilai double dari objek JSON atau array JSON.

×

Fungsi json_format

json_format(x)

Mengonversi objek JSON menjadi string.

Fungsi json_parse

json_parse(x)

Mengonversi string menjadi objek JSON.

Fungsi json_size

json_size(x, json_path)

Menghitung jumlah elemen dalam objek JSON atau array.

Fungsi json_object_flatten

json_object_flatten(x)

Meratakan objek JSON menjadi struktur kunci-nilai satu lapis.

×

Fungsi json_array_contains

Fungsi json_array_contains memeriksa apakah array JSON berisi nilai tertentu.

Sintaksis

json_array_contains(x, value)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah array JSON.

value

Sebuah nilai numerik.

Tipe nilai kembali

boolean

Contoh

Contoh ini memeriksa apakah array JSON [1, 2, 3] berisi nilai 2.

  • Pernyataan kueri (Uji)

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • Hasil kuerijson_array_contains

Fungsi json_array_get

Fungsi json_array_get mengembalikan elemen pada indeks tertentu dalam array JSON.

Sintaksis

json_array_get(x, indeks)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah array JSON.

index

Indeks elemen JSON. Indeks dimulai dari 0.

Tipe nilai kembali

varchar

Contoh

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

  • Pernyataan kueri (Tes)

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

Fungsi json_array_length

Fungsi json_array_length menghitung jumlah elemen dalam array JSON.

Sintaksis

json_array_length(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah array JSON.

Tipe nilai kembali

bigint

Contoh

  • Contoh 1: Menghitung jumlah elemen JSON di dalam bidang Results.

    • Bidang contoh

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

      * | SELECT json_array_length(Results)
    • Hasil kuerijson_array_length

  • Contoh 2: Menghitung jumlah elemen JSON di dalam bidang time.

    • Bidang contoh

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

      * | SELECT json_array_length(time)
    • Hasil kuerijson_array_length

Fungsi json_extract

Fungsi json_extract mengekstrak satu set nilai JSON, yang bisa berupa array atau objek, dari objek JSON atau array JSON.

Penting

Fungsi json_extract melaporkan kesalahan untuk tipe JSON yang tidak valid. Dalam kasus seperti itu, gunakan fungsi json_extract_scalar sebagai gantinya.

Sintaksis

json_extract(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah objek JSON atau array JSON.

json_path

Path JSON, seperti $.store.book[0].title. Untuk informasi lebih lanjut, lihat Atur json_path.

Tipe nilai kembali

String dalam format JSON.

Contoh

SQL

Contoh ini mengekstrak nilai dari bidang EndTime dari bidang Results.

  • Bidang contoh

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

    * | SELECT json_extract(Results, '$.0.EndTime')
  • Hasil kuerijson_extract

SPL

Contoh ini mengekstrak nilai dari bidang EndTime dari bidang Results.

  • Bidang contoh

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

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

image.png

Fungsi json_extract_scalar

Fungsi json_extract_scalar mengekstrak nilai skalar, seperti string, integer, atau Boolean, dari objek JSON atau array JSON.

Sintaksis

json_extract_scalar(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah objek JSON atau array JSON.

json_path

Path JSON, seperti $.store.book[0].title. Untuk informasi lebih lanjut, lihat Atur json_path.

Tipe nilai kembali

varchar

Contoh

SQL

Contoh ini mengekstrak nilai dari bidang RawResultCount dari bidang Results dan mengonversi nilainya ke tipe bigint untuk menghitung jumlah.

  • Contoh bidang

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

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

SPL

Contoh ini mengekstrak nilai dari bidang RawResultCount dari bidang Results.

  • Contoh bidang

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

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • Hasil SPLimage.png

Fungsi json_extract_bool

Fungsi json_extract_bool mengekstrak Nilai Boolean dari objek JSON atau array JSON. Jika nilai tidak dapat diekstrak, null akan dikembalikan.

Sintaksis

json_extract_bool(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai parameter ini bertipe JSON.

json_path

Path JSON, seperti $.store.book[0].title. Untuk informasi lebih lanjut, lihat Atur json_path.

Tipe nilai kembali

boolean

Contoh

Contoh ini mengekstrak Nilai Boolean dari array JSON Results.

  • Bidang contoh

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

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

    image

Fungsi json_extract_long

Fungsi json_extract_long mengekstrak nilai bigint dari objek JSON atau array JSON. Jika nilai tidak dapat diekstrak, null akan dikembalikan.

Sintaksis

json_extract_long(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai parameter bertipe JSON.

json_path

Path JSON, seperti $.store.book[0].title. Untuk informasi lebih lanjut, lihat Setel json_path.

Tipe nilai kembali

bigint

Contoh

Contoh ini mengekstrak nilai bigint dari array JSON Results.

  • Bidang contoh

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

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

    image

Fungsi json_extract_double

Fungsi json_extract_double mengekstrak nilai double dari objek JSON atau array JSON. Jika nilai tidak dapat diekstrak, null akan dikembalikan.

Sintaksis

json_extract_double(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai parameter bertipe JSON.

json_path

Path JSON, seperti $.store.book[0].title. Untuk informasi lebih lanjut, lihat Setel json_path.

Tipe nilai kembali

double

Contoh

Contoh ini mengekstrak nilai double dari array JSON Results.

  • Bidang contoh

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

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

    image

Fungsi json_format

Fungsi json_format mengonversi objek JSON menjadi string.

Sintaksis

json_format(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter bertipe JSON.

Tipe nilai kembali

varchar

Contoh

Contoh ini mengonversi array JSON [1,2,3] menjadi string '[1, 2, 3]'.

  • Pernyataan kueri (Uji)

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

Fungsi json_parse

Fungsi json_parse mengonversi string menjadi tipe JSON dan memvalidasi bahwa string tersebut berada dalam format JSON yang valid. Untuk mengekstrak nilai dari objek JSON, gunakan fungsi json_extract_scalar.

Sintaksis

json_parse(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah sebuah string.

Tipe nilai kembali

JSON

Contoh

SQL

  • Contoh 1

    Contoh ini mengonversi string '[1,2,3]' menjadi array JSON [1, 2, 3].

    • Pernyataan kueri (Tes)

       * | SELECT json_parse('[1, 2, 3]')
    • Hasil kuerijson_format

  • Contoh 2

    Contoh ini mengekstrak setiap subbidang dari bidang logging.

    • Bidang contohjson_parse

    • Pernyataan kueri (Tes)

      *| SELECT map_keys(try_cast(json_parse(logging) AS map(varchar, json)))
    • Hasil kuerijson_parse

SPL

Contoh ini mengonversi string [1,2,3] menjadi array JSON [1, 2, 3].

  • Pernyataan SPL

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

image.png

Fungsi json_size

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

Sintaksis

json_size(x, json_path)

Parameter

Parameter

Deskripsi

x

Nilai parameter adalah objek JSON atau array JSON.

json_path

Path JSON, seperti $.store.book[0].title. Untuk informasi lebih lanjut, lihat Atur json_path.

Tipe nilai kembali

bigint

Contoh

Contoh ini mengembalikan jumlah elemen dalam bidang status.

  • Bidang contoh

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

    * | SELECT json_size(Results, '$.0.RawResults')
  • Hasil kuerijson_size

Fungsi json_object_flatten

Fungsi json_object_flatten meratakan objek JSON menjadi struktur kunci-nilai satu lapis.

Sintaksis

json_object_flatten(x)

Parameter

Parameter

Deskripsi

x

Nilai parameter bertipe JSON. Jika objek JSON bukan objek, maka akan dikembalikan nilai null.

Tipe nilai kembali

map(varchar, varchar)

Contoh

Contoh ini meratakan konten JSON dari bidang content menjadi pasangan kunci-nilai satu lapis.

  • Bidang 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;
  • Keluaran

    image.png