parse_json()

Interpretiert string als JSON-Wert und gibt den Wert als dynamic zurück. Wenn möglich, wird der Wert in relevante Datentypen konvertiert. Verwenden Sie für strikte Analyse ohne Datentypkonvertierung die Funktionen extract() oder extract_json().

Es ist besser, die funktion parse_json() gegenüber der funktion extract_json() zu verwenden, wenn Sie mehr als ein Element eines JSON-Verbundobjekts extrahieren müssen. Verwenden Sie nach Möglichkeit dynamic().

Veraltete Aliase: parsejson(), toobject(), todynamic()

Syntax

parse_json(json)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
json string ✔️ Die Zeichenfolge in Form eines JSON-formatierten Werts oder eines dynamischen Eigenschaftenbehälters, der als JSON analysiert werden soll.

Gibt zurück

Ein Objekt vom Typ dynamic, das durch den Wert von json festgelegt wird:

Beispiel

Für das folgende Beispiel gilt: Wenn context_custom_metrics ein string-Element ist, das wie folgt aussieht:

{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}

dann ruft die folgende Abfrage den Wert des duration Slots im -Objekt ab, und daraus werden zwei Slots118.0duration.valueduration.min ( bzw110.0. ) abgerufen.

T
| extend d=parse_json(context_custom_metrics) 
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]

Hinweise

Es kommt häufig vor, dass eine JSON-Zeichenfolge einen Eigenschaftenbehälter beschreibt, in dem einer der „Slots“ eine weitere JSON-Zeichenfolge ist.

Zum Beispiel:

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d

In solchen Fällen ist es nur erforderlich, parse_json zwei Mal aufzurufen. Jedoch muss sichergestellt werden, dass im zweiten Aufruf tostring verwendet wird. Andernfalls übergibt der zweite Aufruf von parse_json einfach die Eingabe unverändert an die Ausgabe, da der deklarierte Typ dynamic ist.

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c