Freigeben über


parse_json()

Gilt für: ✅Microsoft Fabric✅

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:

Beispiele

Die Beispiele in diesem Abschnitt zeigen, wie Sie die Syntax verwenden, um Ihnen den Einstieg zu erleichtern.

Analyse der Dauermetriken

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 ruft daraus zwei Steckplätze ab, 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

Ausgabe

context_custom_metrics d duration_value duration_min
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}} {"duration":{"value":118,"count":5,"min":100,"max":150,"stdDev":0,"sampledValue":118,"sum":118}} 118 100

Geschachtelte JSON-Analyse

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

Ausgabe

print_0
{"a":123, "b":"{"c":456}"}

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 an die Ausgabe as-is, da der deklarierte Typ dynamicist.

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

Ouput-

d_b_c
456