Delen via


parse_json()

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft 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 type dynamic dat de oorspronkelijke string waarde bevat.

Voorbeeld

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 haalt de volgende query de waarde op van de duration-site in het object 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

notities

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

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