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.
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()
Syntaxis
parse_json(
json-)
Meer informatie over syntaxisconventies.
Parameters
| 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. |
Retourneert
Een object van het type dynamic dat wordt bepaald door de waarde van json-:
- Als json- van het type
dynamicis, wordt de waarde as-isgebruikt. - Als json- van het type
stringis en een JSON-tekenreeks, wordt de tekenreeks geparseerd en wordt de geproduceerde waarde geretourneerd. - Als json- van het type
stringis, maar het geen JSON-tekenreeks, is de geretourneerde waarde een object van het typedynamicdat de oorspronkelijkestringwaarde bevat.
Voorbeelden
In de voorbeelden in deze sectie ziet u hoe u de syntaxis kunt gebruiken om aan de slag te gaan.
Parseren van metrische gegevens voor duur
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 |
Geneste JSON-parsering
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 dynamicis.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Ouput-
| d_b_c |
|---|
| 456 |