Tüm Ürünler
Search
Belge Merkezi

Simple Log Service:JSON işlevleri

Son Güncelleme:Sep 30, 2026

Bu konuda örneklerle birlikte JSON işlevlerinin temel sözdizimi açıklanmaktadır.

SLS aşağıdaki JSON işlevlerini destekler.

Önemli
  • Log Service sorgu ifadelerinde dizeleri tek tırnak işaretleriyle ('') çevirin. Log Service, tırnak içinde olmayan karakterleri veya çift tırnak ("") içindeki karakterleri bir alan adı veya sütun adı olarak yorumlar. Örneğin, 'status' status dizesini temsil ederken; status veya "status" status adlı günlük alanını temsil eder.

  • JSON biçimindeki bir günlük alanı değerini birden çok satıra genişletmek için UNNEST yan tümcesini kullanın. Daha fazla bilgi için bkz. UNNEST yan tümcesi.

  • Bir dize JSON olarak ayrıştırılamazsa işlev null döndürür.

  • Toplama sırasında bir JSON günlüğü kesilirse, bunun bir JSON işleviyle analiz edilmesi hataya neden olur ve sorguyu iptal eder. Bu hatayı işlemek için istisnayı yakalamak ve sorgunun devam etmesine izin vermek amacıyla işlev çağrısını bir TRY ifadesi içine alın. Örneğin: * | select message, try(json_parse(message)). Daha fazla bilgi için bkz. TRY ifadesi.


İşlev adı


Sözdizimi


Açıklama


SQL desteği


SPL desteği


json_array_contains işlevi


json_array_contains(x, value)


Bir JSON dizisinin belirli bir değer içerip içermediğini denetler.


√


√


json_array_get işlevi


json_array_get(x, index)


Bir JSON dizisinde belirtilen dizindeki öğeyi döndürür.


√


×


json_array_length işlevi


json_array_length(x)


Bir JSON dizisindeki öğe sayısını döndürür.


√


√


json_extract işlevi


json_extract(x, json_path)


Bir JSON nesnesinden veya JSON dizisinden bir JSON nesnesi ya da JSON dizisi ayıklar.


√


√


json_extract_scalar işlevi


json_extract_scalar(x, json_path)


Bir JSON nesnesinden veya JSON dizisinden dize, tamsayı veya boolean gibi skaler bir değer ayıklar.


√


√


json_extract_bool işlevi


json_extract_bool(x, json_path)


Bir JSON nesnesinden veya JSON dizisinden bir boolean değeri ayıklar.


√


×


json_extract_long işlevi


json_extract_long(x, json_path)


Bir JSON nesnesinden veya JSON dizisinden bir bigint değeri ayıklar.


√


×


json_extract_double işlevi


json_extract_double(x, json_path)


Bir JSON nesnesinden veya JSON dizisinden bir double değeri ayıklar.


√


×


json_format işlevi


json_format(x)


Bir JSON değerini dizeye biçimlendirir.


√


√


json_parse işlevi


json_parse(x)


Bir dizeyi JSON değerine ayrıştırır.


√


√


json_size işlevi


json_size(x, json_path)


Bir JSON dizisindeki öğe sayısını veya bir JSON nesnesindeki anahtar-değer çifti sayısını döndürür.


√


√


json_object_flatten işlevi


json_object_flatten(x)


Bir JSON nesnesini tek katmanlı bir anahtar-değer yapısına düzleştirir.


√


×

Json_array_contains

Json_array_contains işlevi, bir JSON dizisinin belirli bir değer içerip içermediğini denetler.

Sözdizimi

json_array_contains(x, value)

Parametreler


Parametre


Açıklama


x


Bir JSON dizisi.


value


JSON dizisinde aranacak değer.

Dönüş değeri türü

boolean

Örnek

[1, 2, 3] JSON dizisinin 2 değerini içerip içermediğini denetleyin.

  • Sorgu ifadesi (Test)

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • [1, 2, 3] JSON dizisi 2 değerini içerdiğinden sorgu true döndürür.

json_array_get işlevi

Bir JSON dizisinde belirtilen dizindeki öğeyi döndürür.

Sözdizimi

json_array_get(x, index)

Parametreler


Parametre


Açıklama


x


Bir JSON dizisi.


index


Öğenin sıfır tabanlı dizini.

Dönüş türü

varchar

Örnek

["a", [3, 9], "c"] JSON dizisinden 1 dizinindeki öğeyi döndürür.

  • Sorgu ifadesi (Test)

    * | SELECT json_array_get('["a", [3, 9], "c"]', 1)
  • Sorgu sonucu [3,9] değeridir.

json_array_length işlevi

Bir JSON dizisindeki öğeleri sayar.

Sözdizimi

json_array_length(x)

Parametreler


Parametre


Açıklama


x


Kaynak JSON dizisi.

Dönüş değeri türü

bigint

Örnekler

  • Örnek 1: Results alanındaki JSON dizisinin öğelerini sayar.

    • Örnek alan

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • Sorgu ve analiz ifadesi

      * | SELECT json_array_length(Results)
    • Sonuç 2 değeridir.

  • Örnek 2: time alanındaki JSON dizisinin öğelerini sayar.

    • Örnek alan

      time:["time_local","request_time","upstream_response_time"]
    • Sorgu ve analiz ifadesi

      * | SELECT json_array_length(time)
    • Sonuç 3 değeridir.

Json_extract işlevi

json_extract işlevi, bir JSON nesnesinden veya JSON dizisinden bir JSON nesnesi ya da JSON dizisi gibi bir JSON değeri ayıklar.

Önemli

json_extract işlevi, geçersiz JSON türleri için hata döndürür. Bunun yerine json_extract_scalar işlevini kullanın.

Sözdizimi

json_extract(x, json_path)

Parametreler


Parametre


Açıklama


x


Bir JSON nesnesi veya JSON dizisi.


json_path


$.store.book[0].title gibi bir JSON yolu. Ayrıntılar için bkz. json_path ayarlama.

Dönüş değeri türü

JSON biçimli bir dize.

Örnekler

SQL

Results alanından EndTime alanının değerini ayıklayın.

  • Örnek veriler

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Sorgu ifadesi

    * | SELECT json_extract(Results, '$.0.EndTime')
  • Sorgu 1626314920 değerini döndürür.

SPL

Results alanından EndTime alanının değerini ayıklayın.

  • Örnek veriler

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

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

Sonuç, 1626314920 olarak ayarlanmış a alanını içerir.

json_extract_scalar

Json_extract_scalar işlevi, bir JSON nesnesinden veya JSON dizisinden skaler bir değer (dize, tamsayı veya Boolean) ayıklar.

Sözdizimi

json_extract_scalar(x, json_path)

Parametreler


Parametre


Açıklama


x


Bir JSON nesnesi veya JSON dizisi.


json_path


$.store.book[0].title gibi JSON yolu. Daha fazla bilgi için bkz. json_path ayarlama.

Dönüş türü

varchar

Örnekler

SQL

Results alanından RawResultCount alanının değerini ayıklayın, değeri bigint'e dönüştürün ve ardından toplamı hesaplayın.

  • Örnek veriler

    Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Sorgu ifadesi

    * | SELECT sum(cast(json_extract_scalar(Results,'$.1.RawResultCount') AS bigint) )
  • Sorgu sonucu 288 değeridir.

SPL

Results alanından RawResultCount alanının değerini ayıklayın.

  • Örnek veriler

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

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • a alanının değeri 1 değeridir.

json_extract_bool

Bir JSON nesnesinden veya JSON dizisinden bir boolean değeri ayıklar. Ayıklama başarısız olursa null döndürür.

Sözdizimi

json_extract_bool(x, json_path)

Parametreler


Parametre


Açıklama


x


Bir JSON nesnesi veya bir JSON dizisi.


json_path


$.store.book[0].title gibi JSON yolu. Daha fazla bilgi için bkz. json_path ayarlama.

Dönüş değeri türü

boolean

Örnek

Results JSON dizisinden bir boolean değeri ayıklayın.

  • Örnek alan

    Results:[{"ret":true},{"status":FALSE}]
  • Sorgu ifadesi

    * | SELECT json_extract_bool(Results, '$.0.ret')
  • Sorgu sonucu

    Sorgu true döndürür.

json_extract_long

Bir JSON nesnesinden veya JSON dizisinden bir bigint değeri ayıklar. Ayıklama başarısız olursa null döndürür.

Sözdizimi

json_extract_long(x, json_path)

Parametreler


Parametre


Açıklama


x


Bir JSON değeri.


json_path


$.store.book[0].title gibi JSON yolu. Daha fazla bilgi için bkz. json_path ayarlama.

Dönüş değeri

bigint

Örnek

Bu örnekte Results JSON dizisinden bir bigint değeri ayıklanır.

  • Örnek alan

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Sorgu ifadesi

    * | SELECT json_extract_long(Results, '$.0.EndTime')
  • Sorgu sonucu

    1626314920 döndürür.

Json_extract_double

Bir JSON nesnesinden veya JSON dizisinden bir double değeri ayıklar. Ayıklama başarısız olursa null döndürür.

Sözdizimi

json_extract_double(x, json_path)

Parametreler


Parametre


Açıklama


x


Bir JSON nesnesi veya JSON dizisi.


json_path


$.store.book[0].title gibi JSON yolu. Ayrıntılar için bkz. json_path nasıl ayarlanır.

Dönüş türü

double

Örnek

Results JSON dizisinden bir double değeri ayıklayın.

  • Örnek alan

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Sorgu ve analiz ifadesi

    * | SELECT json_extract_double(Results, '$.0.EndTime')
  • Sorgu ve analiz sonucu

    Sorgu 1626314920.0 değerini döndürür.

json_format işlevi

Json_format işlevi, bir JSON değerini dize olarak biçimlendirir.

Sözdizimi

json_format(x)

Parametreler


Parametre


Açıklama


x


Bir JSON değeri.

Dönüş türü

Varchar.

Örnek

[1,2,3] JSON dizisini '[1, 2, 3]' dizesine dönüştürür.

  • Sorgu ifadesi (Test)

    * | SELECT json_format(json_parse('[1, 2, 3]'))
  • Sorgu sonucu '[1, 2, 3]' değeridir.

json_parse işlevi

json_parse işlevi, bir dizeyi JSON türüne dönüştürerek biçimini doğrular. Ancak bu işlevin kullanım alanı sınırlıdır. Bir JSON dizesinden değer ayıklamak için json_extract_scalar işlevini kullanın.

Sözdizimi

json_parse(x)

Parametreler


Parametre


Açıklama


x


Bir dize ifadesi.

Dönüş değeri türü

JSON türü.

Örnekler

SQL

  • Örnek 1

    '[1, 2, 3]' dizesini [1, 2, 3] JSON dizisine dönüştürür.

    • Sorgu ifadesi (Test)

       * | SELECT json_parse('[1, 2, 3]')
    • Sorgu sonucu [1, 2, 3] değeridir.

  • Örnek 2

    logging alanından anahtarları ayıklar.

    • Bu örnekte, message, processName, thread, threadName, module, funcName, levelname ve process gibi anahtar-değer çiftleri içeren bir JSON nesnesi olan logging alanı işlenir.

    • Sorgu ifadesi (Test)

      *| SELECT map_keys(try_cast(json_parse(logging) AS map(varchar, json)))
    • Sorgu sonucu ["funcName","levelname","message","module","process","processName","thread","threadName"] değeridir.

SPL

'[1, 2, 3]' dizesini [1, 2, 3] JSON dizisine dönüştürür.

  • SPL ifadesi

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

a alanının değeri [1, 2, 3] değeridir.

json_size işlevi

Json_size işlevi, bir JSON nesnesindeki veya JSON dizisindeki öğe sayısını döndürür.

Sözdizimi

json_size(x, json_path)

Parametreler


Parametre


Açıklama


x


Bir JSON nesnesi veya JSON dizisi.


json_path


$.store.book[0].title gibi JSON yolu. Daha fazla bilgi için bkz. json_path ayarlama.

Dönüş değeri türü

bigint

Örnek

Bu örnekte RawResults alanındaki öğe sayısı hesaplanır.

  • Örnek alan

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

    * | SELECT json_size(Results, '$.0.RawResults')
  • Sorgu sonucu 1 değeridir.

json_object_flatten işlevi

Bir JSON nesnesini tek katmanlı bir anahtar-değer yapısına düzleştirir.

Sözdizimi

json_object_flatten(x)

Parametreler


Parametre


Açıklama


x


Düzleştirilecek JSON değerini belirtir. Giriş bir JSON nesnesi değilse işlev null döndürür.

Dönüş değeri türü

map(varchar, varchar)

Örnek

'content' alanındaki JSON nesnesini tek katmanlı bir anahtar-değer yapısına düzleştirir.

  • Örnek alan

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

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

    Veri alanının değeri {"Time":"1626314920","Info":"[{\"count\":\"1\"}]","Body":"this is test"} değeridir. Bu, orijinal JSON nesnesinin tek katmanlı bir anahtar-değer yapısına düzleştirildiğini gösterir.