parse_json()

Интерпретирует string как значение JSON и возвращает значение типа dynamic. По возможности значение преобразуется в соответствующие типы данных. Для строгого анализа без преобразования типов данных используйте функции extract() или extract_json().

Лучше использовать функцию parse_json() вместо функции extract_json(), если необходимо извлечь несколько элементов составного объекта JSON. По возможности используйте dynamic().

Устаревшие псевдонимы: parsejson(), toobject(), todynamic()

Синтаксис

parse_json(json)

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
json string ✔️ Строка в виде значения в формате JSON или динамического контейнера свойств для анализа как JSON.

Возвращаемое значение

Объект типа dynamic, который определяется значением json:

Пример

В следующем примере 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}}

затем следующий запрос извлекает значение слота duration в объекте , а затем извлекает два слота и duration.valueduration.min (118.0 и 110.0соответственно).

T
| extend d=parse_json(context_custom_metrics) 
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]

Примечания

Обычно используется строка JSON, описывающая контейнер свойств, в котором один из "слотов" является другой строкой JSON.

Пример:

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d

В таких случаях нужно не только дважды вызывать parse_json, но и убедиться, что при втором вызове используется tostring. В противном случае при втором вызове parse_json входные данные будут переданы в вывод "как есть", поскольку его объявленным типом является dynamic.

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