Aracılığıyla paylaş


parse_json()

Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini Azure İzleyiciMicrosoft Sentinel

bir string değerini JSON değeri olarak yorumlar ve değerini olarak dynamicdöndürür. Mümkünse, değer ilgili veri türlerine dönüştürülür. Veri türü dönüştürmesi olmadan katı ayrıştırma için extract() veya extract_json() işlevlerini kullanın.

Bir JSON bileşik nesnesinin birden fazla öğesini ayıklamanız gerektiğinde parse_json() işlevini extract_json() işlevi üzerinde kullanmak daha iyidir. Mümkün olduğunda dynamic() kullanın.

Kullanım dışı bırakılan diğer adlar: parsejson(), toobject(), todynamic()

Sözdizimi

parse_json(json)

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Zorunlu Açıklama
json string ✔️ JSON olarak ayrıştırmak için JSON biçimli değer veya dinamik özellik paketi biçimindeki dize.

Döndürülenler

json değeri tarafından belirlenen türdeki dynamic bir nesne:

  • json türündeyse dynamicdeğeri olduğu gibi kullanılır.
  • json türündeyse stringve düzgün biçimlendirilmiş bir JSON dizesiyse, dize ayrıştırılır ve üretilen değer döndürülür.
  • json türündeyse stringancak düzgün biçimlendirilmiş bir JSON dizesi değilse, döndürülen değer özgün string değeri tutan türde dynamic bir nesnedir.

Örnek

Aşağıdaki örnekte, şuna benzeyen bir string ne zamandırcontext_custom_metrics:

{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}

ardından aşağıdaki sorgu nesnedeki yuvanın duration değerini alır ve bu sorgudan sırasıyla ve duration.min (118.0 ve 110.0) iki yuva duration.value alır.

datatable(context_custom_metrics:string)
[
    '{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}'
]
| extend d = parse_json(context_custom_metrics)
| extend duration_value = d.duration.value, duration_min = d.duration.min

Notlar

"Yuvalardan" birinin başka bir JSON dizesi olduğu bir özellik paketini açıklayan bir JSON dizesinin olması yaygın bir durumdur.

Örneğin:

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d

Bu gibi durumlarda, yalnızca iki kez çağırmak parse_json gerekmez, aynı zamanda ikinci çağrıda tostring kullanıldığından emin olmak için de gereklidir. Aksi takdirde, için ikinci çağrı parse_json yalnızca girişi olduğu gibi çıkışa geçirir çünkü bildirilen türü olur dynamic.

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c