Извлечение данных из JSON документов
Путь GJSON — это синтаксис текстовой строки, описывающий шаблон поиска для быстрого извлечение значений из полей события содержащих данные в формате JSON.
Содержание:
- Формат выражения
- Общая информация
- Использование wildcard маски
- Символы экранирования
- Массивы
- Запросы
- Точка vs pipe
- Модификаторы
- Модификаторы аргументов
- Новый JSON как продукт нескольких выражений извлечения
- Литералы
Формат выражения
Путь (выражение) - это последовательность ключей, разделённых точкой.
Ключ может содержать специальные символы подстановки *
и ?
.
Для доступа к значению массива используйте индекс в качестве ключа.
Для получения количества элементов в массиве или для доступа к дочернему пути используйте символ #
.
Символы точка (.
) и подстановка (*
, ?
) могут быть экранированы символом \
.
Путь предназначен для простого представления в виде серии
компонентов, разделенных символом .
.
Наряду с символом .
есть еще несколько, которые имеют специальные
значения, включая |
, #
, @
, \
, *
, !
и ?
Пример
Исходный JSON
{
"name": {"first": "Tom", "last": "Anderson"},
"age":37,
"children": ["Sara","Alex","Jack"],
"fav.movie": "Deer Hunter",
"friends": [
{"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
{"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
{"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
]
}
Общая информация
В большинстве случаев необходимо получить значения по имени объекта или индексу массива.
name.last "Anderson"
name.first "Tom"
age 37
children ["Sara","Alex","Jack"]
children.0 "Sara"
children.1 "Alex"
friends.1 {"first": "Roger", "last": "Craig", "age": 68}
friends.1.first "Roger"