Перейти к содержанию

Конструктор jq-фильтров

Превратите JSON документ в рабочий jq-фильтр с предпросмотром на ваших данных.

Входные данные
Выходные данные

Конструктор jq-фильтров

Вставьте JSON документ, и инструмент перечислит каждый найденный в нём путь к полю в собственном синтаксисе jq с точками и скобками — .users[].email, .items[0].price и так далее — чтобы не гадать о структуре чужих данных. Выберите один из этих путей или впишите свой, и инструмент построит вокруг него рабочий jq-фильтр.

Опция «Операция» определяет, какой фильтр будет построен. Select возвращает значение или значения пути, по одному на строку, точно так же, как обычный jq выводит поток. Map оборачивает те же значения в единый JSON-массив с квадратными скобками. Filter требует путь, оканчивающийся на [], и условие вроде age > 18 или status == "active" — остаются только подходящие элементы, с select() под капотом. Aggregate указывает на весь массив (без завершающих []) и сообщает его количество, а если каждый элемент — число, ещё и сумму, минимум и максимум; добавьте условие, чтобы учитывать только элементы, которые ему соответствуют.

Вывод в виде сырой строки убирает кавычки у строковых результатов, повторяя флаг -r в jq; компактный вывод сжимает JSON в одну строку вместо отступа в два пробела. Опция версии синтаксиса jq лишь добавляет комментарий к сгенерированному фильтру для jq 1.5, 1.6 или 1.7 — удобно, когда вы закрепляете конвейер за конкретной версией — не меняя того, что вычисляет предпросмотр, ведь реализованное здесь подмножество jq ведёт себя одинаково во всех трёх. Условия поддерживают ==, !=, >, >=, <, <= и contains и сравнивают с числами, строками, булевыми значениями, null или текстом в кавычках.

Всё выполняется локально в вашем браузере: вставленный JSON, построенный фильтр и полученный результат никогда не покидают ваше устройство. Когда фильтр вас устроит, скопируйте результат, скачайте его как файл .txt или отправьте вывод обратно во ввод, чтобы продолжить уточнение.

FAQ

Здесь выполняется настоящий бинарник jq?
Нет. Инструмент реализует практическое подмножество синтаксиса путей и операций jq на JavaScript, поэтому один и тот же фильтр может потребовать доработки для крайних случаев, которые обработала бы полноценная установка jq.
Почему Filter требует путь, оканчивающийся на []?
Фильтрация оставляет или отбрасывает отдельные элементы массива, поэтому путь должен указывать на итерируемую коллекцию — .users[], а не .users. Инструмент сообщит, если это не так.
Что принимает поле условия?
Имя поля плюс оператор и значение, например age > 18 или status == "active", либо просто оператор и значение (> 10) для прямого сравнения элементов массива. Поддерживаются операторы ==, !=, >, >=, <, <= и contains.
Почему Aggregate показывает только количество для некоторых путей?
Сумма, минимум и максимум имеют смысл только для массива чисел. Если массив содержит объекты — например, список пользователей — вы всё равно получите количество, при желании сначала суженное условием.
Загружается ли мой JSON куда-либо?
Нет. Разбор, поиск путей и фильтрация полностью происходят в вашем браузере — документ никогда не отправляется на сервер.