Выражения JSONPath
Нотация JSONPath описывает путь к одному или нескольким элементам в документе JSON.
Нотация JSONPath используется в следующих сценариях:
- Указание сопоставлений данных для приема
- Указание сопоставлений данных для внешних таблиц
- В язык запросов Kusto (KQL) функции, обрабатывающие динамические объекты, такие как bag_remove_keys() и extract_json()
Поддерживается следующее подмножество нотации JSONPath:
Выражение пути | Описание |
---|---|
$ |
Корневой объект |
. |
Выбирает указанное свойство в родительском объекте. Используйте эту нотацию, если свойство не содержит специальных символов. |
['property'] или ["property"] |
Выбирает указанное свойство в родительском объекте. Убедитесь, что имя свойства содержит одинарные или двойные кавычки. Используйте эту нотацию, если имя свойства содержит специальные символы, такие как пробелы, или начинается с символа, отличного от A..Za..z_ . |
[n] |
Выбирает n-й элемент из массива. Индексы основаны на 0. |
Примечание
Подстановочные знаки, рекурсия, объединение, срезы и текущий объект не поддерживаются.
Пример
Учитывая следующий документ JSON:
{
"Source": "Server-01",
"Timestamp": "2023-07-25T09:15:32.123Z",
"Log Level": "INFO",
"Message": "Application started successfully.",
"Details": {
"Service": "AuthService",
"Endpoint": "/api/login",
"Response Code": 200,
"Response Time": 54.21,
"User": {
"User ID": "user123",
"Username": "kiana_anderson",
"IP Address": "192.168.1.100"
}
}
}
Каждое из полей можно представить с помощью нотации JSONPath следующим образом:
"$.Source" // Source field
"$.Timestamp" // Timestamp field
"$['Log Level']" // Log Level field
"$.Message" // Message field
"$.Details.Service" // Service field
"$.Details.Endpoint" // Endpoint field
"$.Details['Response Code']" // Response Code field
"$.Details['Response Time']" // Response Time field
"$.Details.User['User ID']" // User ID field
"$.Details.User.Username" // Username field
"$.Details.User['IP Address']" // IP Address field
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по