parse_json()

Az a string értéket JSON-értékként értelmezi, és az értéket a következőként adja vissza: dynamic. Ha lehetséges, az érték releváns adattípusokká lesz konvertálva. Az adattípus-átalakítás nélküli szigorú elemzéshez használja a 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 egynél több elemét kell kinyernie. Ha lehetséges, használja a dynamic() elemet .

Elavult aliasok: parsejson(), toobject(), todynamic()

Syntax

parse_json(Json)

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Json string ✔️ A JSON-formátumú érték vagy egy dinamikus tulajdonságcsomag formájában lévő sztring, amely JSON-ként elemezhető.

Válaszok

A json értéke által meghatározott típusú dynamic objektum:

  • Ha a json típus dynamic, akkor az értéke a -ként lesz felhasználva.
  • Ha a json típusa string, és egy megfelelően formázott JSON-sztring, akkor a sztringet elemzi a függvény, és visszaadja a létrehozott értéket.
  • Ha a json típusa string, de nem megfelelően formázott JSON-sztring, akkor a visszaadott érték egy olyan típusú dynamic objektum, amely az eredeti string értéket tartalmazza.

Példa

A következő példában, ha context_custom_metrics az a string következőhöz hasonló:

{"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 duration objektumban lévő pont értékét, és abból lekéri a két tárolóhelyet, duration.value és duration.min (118.0 és 110.0, illetve).

T
| extend d=parse_json(context_custom_metrics) 
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]

Megjegyzések

Gyakran előfordul, hogy egy JSON-sztring egy tulajdonságzsákot í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 a második hívásban tostring is. Ellenkező esetben a második hívás parse_json csak a bemenetet adja át a kimenetnek, mivel 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