Megosztás a következőn keresztül:


parse_json()

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 jsondynamictípusú, akkor az értéke as-islesz.
  • Ha jsonstringtípusú, és megfelelően formázott JSON-sztring, akkor a sztring elemzése és a létrehozott érték lesz visszaadva.
  • Ha jsonstringtípusú, de nem megfelelően formázott JSON-sztring, akkor a visszaadott érték olyan dynamic típusú objektum, amely az eredeti string é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