Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- 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.
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 dynamic
ist.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Ouput-
d_b_c |
---|
456 |