parse_json()
Interpreteert een string
als een JSON-waarde en retourneert de waarde als dynamic
. Indien mogelijk wordt de waarde geconverteerd naar relevante gegevenstypen. Voor strikte parsering zonder gegevenstypeconversie gebruikt u de functies extract() of extract_json().
Het is beter om de functie parse_json() te gebruiken in plaats van de functie extract_json() wanneer u meer dan één element van een samengesteld JSON-object moet extraheren. Gebruik waar mogelijk dynamic().
Afgeschafte aliassen: parsejson(), toobject(), todynamic()
Syntax
parse_json(
Json)
Meer informatie over syntaxisconventies.
Parameters
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
Json | string |
✔️ | De tekenreeks in de vorm van een waarde in JSON-indeling of een dynamische eigenschappenverzameling om te parseren als JSON. |
Retouren
Een object van het type dynamic
dat wordt bepaald door de waarde van json:
- Als json van het type
dynamic
is, wordt de waarde ervan als zodanig gebruikt. - Als json van het type
string
is en een correct opgemaakte JSON-tekenreeks is, wordt de tekenreeks geparseerd en wordt de gegenereerde waarde geretourneerd. - Als json van het type
string
is, maar niet een juist opgemaakte JSON-tekenreeks is, is de geretourneerde waarde een object van het typedynamic
dat de oorspronkelijkestring
waarde bevat.
Voorbeeld
In het volgende voorbeeld, wanneer context_custom_metrics
is een string
die er als volgt uitziet:
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
vervolgens wordt met de volgende query de waarde van de duration
sleuf in het object opgehaald en worden twee sleuven opgehaald, duration.value
respectievelijk en duration.min
(118.0
en 110.0
).
T
| extend d=parse_json(context_custom_metrics)
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]
Opmerkingen
Het is gebruikelijk om een JSON-tekenreeks te hebben die een eigenschappenverzameling beschrijft waarin een van de 'sleuven' een andere JSON-tekenreeks is.
Bijvoorbeeld:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
In dergelijke gevallen is het niet alleen nodig om twee keer aan te roepen parse_json
, maar ook om ervoor te zorgen dat in de tweede aanroep tostring
wordt gebruikt. Anders geeft de tweede aanroep aan parse_json
gewoon de invoer door aan de uitvoer als zodanig, omdat het gedeclareerde type is 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.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor