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:
- Wenn json vom Typ
dynamic
ist, wird der zugehörige Wert unverändert verwendet. - Wenn json vom Typ
string
und eine ordnungsgemäß formatierte JSON-Zeichenfolge ist, wird die Zeichenfolge analysiert und der generierte Wert zurückgegeben. - Wenn json vom Typ
string
, aber keine ordnungsgemäß formatierte JSON-Zeichenfolge ist, ist der zurückgegebene Wert ein Objekt vom Typdynamic
, das den ursprünglichenstring
-Wert enthält.
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.0
duration.value
duration.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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für