parse_json()
Şunlar için geçerlidir: ✅Microsoft Fabric✅Azure Veri Gezgini✅ Azure İzleyici✅Microsoft Sentinel
bir string
değerini JSON değeri olarak yorumlar ve değerini olarak dynamic
dö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
dynamic
değeri olduğu gibi kullanılır. - json türündeyse
string
ve 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
string
ancak düzgün biçimlendirilmiş bir JSON dizesi değilse, döndürülen değer özgünstring
değeri tutan türdedynamic
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