parse_json()
Tolkar ett string
som ett JSON-värde och returnerar värdet som dynamic
. Om möjligt konverteras värdet till relevanta datatyper. För strikt parsning utan datatypskonvertering använder du funktionerna extract() eller extract_json().
Det är bättre att använda funktionen parse_json() över funktionen extract_json() när du behöver extrahera fler än ett element i ett JSON-sammansatt objekt. Använd dynamic() när det är möjligt.
Inaktuella alias: parsejson(), toobject(), todynamic()
Syntax
parse_json(
Json)
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Json | string |
✔️ | Strängen i form av ett JSON-formaterat värde eller en dynamisk egenskapsuppsättning som ska parsas som JSON. |
Returer
Ett objekt av typen dynamic
som bestäms av värdet för json:
- Om json är av typen
dynamic
används dess värde som det är. - Om json är av typen
string
och är en korrekt formaterad JSON-sträng parsas strängen och värdet som skapas returneras. - Om json är av typen
string
, men det inte är en korrekt formaterad JSON-sträng, är det returnerade värdet ett objekt av typendynamic
som innehåller det ursprungligastring
värdet.
Exempel
I följande exempel, när context_custom_metrics
är en string
som ser ut så här:
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
sedan hämtar följande fråga värdet duration
för platsen i -objektet, och från det hämtar den två platser, duration.value
och duration.min
(118.0
110.0
respektive ).
T
| extend d=parse_json(context_custom_metrics)
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]
Kommentarer
Det är vanligt att ha en JSON-sträng som beskriver en egenskapsuppsättning där en av "platserna" är en annan JSON-sträng.
Exempel:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
I sådana fall är det inte bara nödvändigt att anropa parse_json
två gånger, utan också att se till att det används i det andra anropet tostring
. Annars skickar det andra anropet till parse_json
bara indata till utdata som de är, eftersom dess deklarerade typ är dynamic
.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för