parse_json()
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
dynamic
típusú, akkor az értéke as-islesz. - Ha json
string
típusú, és megfelelően formázott JSON-sztring, akkor a sztring elemzése és a létrehozott érték lesz visszaadva. - Ha json
string
típusú, de nem megfelelően formázott JSON-sztring, akkor a visszaadott érték olyandynamic
típusú objektum, amely az eredetistring
értéket tartalmazza.
Példa
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
Jegyzetek
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
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 az parse_json
második hívása csak a kimeneti as-istovábbítja 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