Freigeben über


parse_json()

Gilt für: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

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 die strikte Analyse ohne Datentypkonvertierung extrakt() oder extract_json() Funktionen.

Es ist besser, die parse_json()-Funktion über die extract_json() -Funktion zu verwenden, wenn Sie mehrere Elemente eines JSON-Verbundobjekts extrahieren müssen. Verwenden Sie dynamic() nach Möglichkeit.

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

Syntax

parse_json(json)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type 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}}

anschließend ruft die folgende Abfrage den Wert des duration Steckplatzes im Objekt ab, und daraus werden zwei Steckplätze abgerufen, duration.value und duration.min (118.0 bzw 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

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