Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Szolgáltatások váltása a Verzió legördülő listával. További információ a navigációról.
A következőkre vonatkozik: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
A string JSON-értékként értelmezi, és az értéket dynamicértékként adja vissza. Ha lehetséges, az érték megfelelő adattípussá alakul. Az adattípus-átalakítás nélküli szigorú elemzéshez használja extract() vagy extract_json() függvényeket.
Jobb, ha a parse_json() függvényt a extract_json() függvényre használja, ha egy JSON-összetett objektum több elemét kell kinyernie. Ha lehetséges, használja dynamic().
Elavult aliasok: parsejson(), toobject(), todynamic()
Szintaxis
parse_json(
Json)
További információ szintaxiskonvenciákról.
Paraméterek
| Név | Típus | Szükséges | Leírás |
|---|---|---|---|
| json | string |
✔️ | A JSON-formátumú sztring vagy egy dinamikus tulajdonságcsomag formájában JSON-ként való elemzéshez. |
Visszatér
Olyan dynamic típusú objektum, amelyet jsonértéke határoz meg:
- Ha json
dynamictípusú, akkor az értéke as-islesz. - Ha json
stringtípusú, és megfelelően formázott JSON-sztring, akkor a sztring elemzése és a létrehozott érték lesz visszaadva. - Ha json
stringtípusú, de nem megfelelően formázott JSON-sztring, akkor a visszaadott érték olyandynamictípusú objektum, amely az eredetistringértéket tartalmazza.
Példák
Az ebben a szakaszban szereplő példák bemutatják, hogyan használhatja a szintaxist az első lépésekhez.
Időtartammetrikák elemzése
Az alábbi példában, ha context_custom_metrics egy string, amely így néz ki:
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
Ezután a következő lekérdezés lekéri az objektum duration pontjának értékét, és abból lekéri a két pontot, duration.value és duration.min (118.0 és 110.0).
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
Kimenet
| context_custom_metrics | d | duration_value | duration_min |
|---|---|---|---|
| {"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}} | {"duration":{"value":118,"count":5,"min":100,"max":150,"stdDev":0,"sampledValue":118,"sum":118}} | 118 | 100 |
Beágyazott JSON-elemzés
Gyakran előfordul, hogy egy JSON-sztring egy tulajdonságcsomagot ír le, amelyben az egyik "tárolóhely" egy másik JSON-sztring.
Például:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
Kimenet
| print_0 |
|---|
| {"a":123, "b":"{"c":456}"} |
Ilyen esetekben nem csak kétszer kell meghívni parse_json, hanem annak biztosítása érdekében is, hogy a második hívásban tostring legyen használva. Ellenkező esetben a parse_json második hívása csak a kimeneti as-isadja át a bemenetet, mert a deklarált típusa dynamic.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Ouput
| d_b_c |
|---|
| 456 |