parse_json()
Dotyczy: ✅Microsoft Fabric✅
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 | Type | 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
string
i 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ąstring
wartość.
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