Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Tolkar en 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 konvertering av datatyp 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 mer ä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 | Krävs | Beskrivning |
|---|---|---|---|
| json | string |
✔️ | Strängen i form av ett JSON-formaterat värde eller en dynamisk egenskapsväska som parsas som JSON. |
Returnerar
Ett objekt av typen dynamic som bestäms av värdet för json:
- Om json är av typen
dynamicanvänds dess värde as-is. - Om json är av typen
stringoch ä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 typendynamicsom innehåller det ursprungligastring-värdet.
Exempel
Exemplen i det här avsnittet visar hur du använder syntaxen för att komma igång.
Parsning av varaktighetsmått
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 för det duration facket i objektet, och från det hämtar den två fack, duration.value och duration.min (118.0 respektive 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
Resultat
| 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 |
Kapslad JSON-parsning
Det är vanligt att ha en JSON-sträng som beskriver en egenskapsväska där en av "platserna" är en annan JSON-sträng.
Till exempel:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
Resultat
| print_0 |
|---|
| {"a":123, "b":"{"c":456}"} |
I sådana fall är det inte bara nödvändigt att anropa parse_json två gånger, utan också att se till att tostring används i det andra anropet. Annars skickar det andra anropet till parse_json bara indata till utdata as-is, 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
Ouput
| d_b_c |
|---|
| 456 |