Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel
Van toepassing op: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel-
Interpreteert een string
als een JSON-waarde en retourneert de waarde als dynamic
. Indien mogelijk wordt de waarde geconverteerd naar relevante gegevenstypen. Gebruik voor strikte parsering zonder conversie van gegevenstypen extract() of extract_json() functies.
Het is beter om de functie parse_json() te gebruiken voor de functie extract_json() wanneer u meer dan één element van een JSON-samengesteld object moet extraheren. Gebruik indien mogelijk dynamic().
afgeschafte aliassen: parsejson(), toobject(), todynamic()
parse_json(
json-)
Meer informatie over syntaxisconventies.
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
json- | string |
✔️ | De tekenreeks in de vorm van een met JSON opgemaakte waarde of een dynamische eigenschapsverzameling om te parseren als JSON. |
Een object van het type dynamic
dat wordt bepaald door de waarde van json-:
- Als json- van het type
dynamic
is, wordt de waarde as-isgebruikt. - Als json- van het type
string
is en een JSON-tekenreeks, wordt de tekenreeks geparseerd en wordt de geproduceerde waarde geretourneerd. - Als json- van het type
string
is, maar het geen JSON-tekenreeks, is de geretourneerde waarde een object van het typedynamic
dat de oorspronkelijkestring
waarde bevat.
In de voorbeelden in deze sectie ziet u hoe u de syntaxis kunt gebruiken om aan de slag te gaan.
Als context_custom_metrics
in het volgende voorbeeld een string
is 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
site in het object opgehaald en worden er twee sleuven opgehaald, respectievelijk duration.value
en duration.min
(118.0
en 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
Uitvoer
context_custom_metrics | d | duration_value | duration_min |
---|---|---|---|
{"duration":{"value":118.0,"count":5.0,"min":100,0,"max":150.0,"stdDev":0,"sampledValue":118.0,"sum":118.0}} | {"duration":{"value":118,"count":5,"min":100,"max":150,"stdDev":0,"sampledValue":118,"sum":118}} | 118 | 100 |
Het is gebruikelijk om een JSON-tekenreeks te hebben die een eigenschapsverzameling beschrijft waarin een van de 'sleuven' een andere JSON-tekenreeks is.
Bijvoorbeeld:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
Uitvoer
print_0 |
---|
{"a":123, "b":"{"c":456}"} |
In dergelijke gevallen is het niet alleen nodig om parse_json
tweemaal aan te roepen, maar ook om ervoor te zorgen dat in de tweede aanroep tostring
wordt gebruikt. Anders geeft de tweede aanroep van parse_json
alleen de invoer door aan de uitvoer as-is, omdat het gedeclareerde type dynamic
is.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Ouput-
d_b_c |
---|
456 |