Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przełącz usługi przy użyciu rozwijanej listy Wersja. Dowiedz się więcej o nawigacji.
Dotyczy: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Interpretuje string wartość jako wartość JSON i zwraca wartość jako dynamic. Jeśli to możliwe, wartość jest konwertowana na odpowiednie typy danych. W przypadku ścisłej analizy bez konwersji typu danych należy użyć funkcji extract() lub extract_json().
Lepiej użyć funkcji parse_json() w funkcji extract_json(), gdy trzeba wyodrębnić więcej niż jeden element obiektu złożonego JSON. Użyj funkcji dynamic(), jeśli jest to możliwe.
Przestarzałe aliasy: parsejson(), toobject(), todynamic()
Składnia
parse_json(
JSON)
Dowiedz się więcej na temat konwencji składni.
Parametry
| Nazwisko | Typ | Wymagania | opis |
|---|---|---|---|
| JSON | string |
✔️ | Ciąg w postaci wartości sformatowanej w formacie JSON lub torby właściwości dynamicznej do analizy jako JSON. |
Zwraca
Obiekt typu dynamic określany przez wartość json:
- Jeśli plik JSON jest typu
dynamic, jego wartość jest używana jako jest. - Jeśli kod JSON jest typu
stringi jest poprawnie sformatowanym ciągiem JSON, ciąg jest analizowany, a wygenerowana wartość jest zwracana. - Jeśli plik JSON jest typu
string, ale nie jest poprawnie sformatowanym ciągiem JSON, zwracana wartość jest obiektem typudynamic, który przechowuje oryginalnąstringwartość.
Przykłady
W przykładach w tej sekcji pokazano, jak używać składni, aby ułatwić rozpoczęcie pracy.
Analizowanie metryk czasu trwania
W poniższym przykładzie, gdy context_custom_metrics element wygląda string następująco:
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
Następnie następujące zapytanie pobiera wartość miejsca duration w obiekcie, a następnie pobiera dwa miejsca, duration.value i duration.min ( odpowiednio118.0 i 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
Wynik
| 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 |
Analizowanie zagnieżdżonych danych JSON
Często występuje ciąg JSON opisujący torbę właściwości, w której jeden z "gniazd" jest innym ciągiem JSON.
Na przykład:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
Wynik
| print_0 |
|---|
| {"a":123, "b":"{"c":456}"} |
W takich przypadkach nie tylko konieczne jest wywołanie parse_json dwukrotnego wywołania, ale także upewnienie się, tostring że w drugim wywołaniu jest używane. W przeciwnym razie drugie wywołanie parse_json po prostu przekazuje dane wejściowe do danych wyjściowych as-is, ponieważ jego zadeklarowany typ jest dynamic.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Ouput
| d_b_c |
|---|
| 456 |
Powiązana zawartość
- Operator analizy
- wtyczki bag_unpack
- operator mv-expand