parse_json()
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 typów 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. Jeśli to możliwe, użyj funkcji dynamic( ).
Przestarzałe aliasy: parsejson(), toobject(), todynamic()
Składnia
parse_json(
Json)
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Json | string |
✔️ | Ciąg w postaci wartości sformatowanej w formacie JSON lub torby właściwości dynamicznej do analizy w formacie JSON. |
Zwraca
Obiekt typu dynamic
, który jest określany przez wartość json:
- Jeśli kod JSON jest typu
dynamic
, jego wartość jest używana w postaci "is". - Jeśli kod JSON jest typu
string
i jest prawidłowo sformatowanym ciągiem JSON, ciąg jest analizowany, a wygenerowana wartość jest zwracana. - Jeśli kod JSON jest typu
string
, ale nie jest poprawnie sformatowanym ciągiem JSON, zwracana wartość jest obiektem typudynamic
, który przechowuje oryginalnąstring
wartość.
Przykład
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ść duration
miejsca w obiekcie, a następnie pobiera dwa miejsca i duration.value
duration.min
(118.0
i 110.0
, odpowiednio).
T
| extend d=parse_json(context_custom_metrics)
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]
Uwagi
Często występuje ciąg JSON opisujący worek właściwości, w którym jeden z "gniazd" jest innym ciągiem JSON.
Na przykład:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
W takich przypadkach nie tylko trzeba wywołać parse_json
dwa razy, ale także upewnić się, tostring
że w drugim wywołaniu jest używane. W przeciwnym razie drugie wywołanie metody parse_json
spowoduje przekazanie danych wejściowych do danych wyjściowych w następujący sposób, ponieważ jego zadeklarowany typ to dynamic
.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla