Инструменты JSON

jq playgroundот пробы фильтра к готовому запросу

Запустите настоящий jq для JSON или текста. Выберите способ чтения входа и проверьте stdout перед переносом команды в оболочку.

jq playground

Ввод JSON / текста

Программа jq

Результат

Предпросмотр блоками по 5 000 символов. Копирование и скачивание включают весь результат.

Ввод и программа остаются в памяти браузера; история не сохраняется.

Доступны -c -r -j -S -a -e, сочетания коротких параметров и длинные аналоги. -s/-R/-n выбираются через режим ввода.

jq 1.8.2 · локальный WebAssembly · ручной запуск

Результат устарел; копирование и скачивание отключены.

Только для оболочки POSIX. Сначала сохраните ввод в input.json; скопированная команда не содержит исходных данных.

Когда из ответа API нужны только несколько полей, удобно сначала проверить выражение на небольшой выборке. jq playground позволяет менять условия отбора и собирать новые объекты, сохраняя исходные данные перед глазами.

jq online здесь означает запуск jq в браузере, а jq filter — выражение для отбора или преобразования данных. Можно проверить и поток отдельных значений, и единый массив: просмотр не объединяет результаты автоматически.

Для чего нужен jq playground?

Увидеть отдельные значения в потоке

Выражение .people[] | select(.age >= 18) | .name выдаёт отдельную строку для каждого взрослого. Просмотр сохраняет разделение результатов и переводы строк, поэтому видно, какие данные получит следующий процесс.

Из трёх записей фильтр пропускает две, каждая становится отдельным результатом.

Собрать входные значения до обработки

В jq playground режим -s сначала собирает все входные значения JSON в массив и только затем запускает программу. Скобки вокруг фильтра собирают его выходные значения для текущего входа — это другой этап обработки.

Три отдельных объекта JSON собраны внутри одного массива.

Как подготовить вход и проверить результат

01

Выберите способ чтения

Режим JSON читает последовательные значения, а -s собирает их в массив. -R читает текст построчно, -Rs передаёт весь текст одной строкой. При -n программа начинает с null, но input и inputs по-прежнему могут читать предоставленные данные.

02

Проверьте замену и запустите программу

Импорт файла, пример и очистка сначала показывают предпросмотр. После применения можно один раз вернуть прежнее состояние вместе с результатом. Запуск — кнопкой или Ctrl/Cmd+Enter. Любая правка делает результат устаревшим и отключает экспорт до следующего запуска.

03

Обратите внимание на код завершения

Любой ненулевой код отключает все действия экспорта, даже когда -e лишь сообщает о false, null или отсутствии вывода. При необходимости уберите -e и повторите запуск. Для команды POSIX сохраните те же исходные данные в input.json.

Возможности языка и точный вывод

Отбор и создание объектов

select оставляет подходящие записи, а map строит массив преобразованных элементов. В примере возраст сравнивается как число и создаётся логическое поле. Строка с цифрами остаётся строкой: преобразование типа следует задавать явно.

Настоящий движок jq

jq 1.8.2 в WebAssembly выполняет конвейеры, reduce, def, рекурсию, try/catch и регулярные выражения. Можно проверять собственные функции прямо в программе. Загрузка файловых модулей и дополнительные файловые аргументы CLI недоступны.

Настройка представления

-r выводит строки без кавычек JSON, -j также убирает разделители результатов. -c даёт компактный JSON, -S сортирует ключи, -a использует ASCII-экранирование. Поддерживаются сочетания коротких параметров и длинные аналоги; остальные параметры отклоняются.

stdout отдельно от диагностики

Экспортируемый текст сохраняет пробелы, переводы строк, начальный BOM и символы NUL. Сообщения debug и stderr показаны отдельно. Просмотр раскрывается блоками по 5 000 символов, а доступный экспорт включает результат целиком.

Ограничения и особенности выполнения

Объём входа и время
Ввод и файлы ограничены 500 000 байт UTF-8, программа — 8 000 байт UTF-8, параметры — 256 символами. Загрузка движка занимает не более 15 секунд; после неё на выполнение отводится 3 секунды. Остановка завершает Worker.
Память и объём вывода
Предел линейной памяти WASM — 256 МиБ; это не общий лимит памяти браузера. stdout и stderr вместе ограничены 2 МиБ. При превышении времени, стека, памяти или объёма вывода экспорт частичного результата недоступен.
Числа обрабатывает сам jq
Перед jq вход не разбирается через JavaScript JSON.parse. Неизменённые большие числовые литералы могут сохранить десятичную запись; арифметика использует плавающую точку и допускает округление. При повторении ключа сохраняется последнее значение. Точные идентификаторы лучше передавать строками.
Ненулевой код требует проверки
С -e значения false/null обычно дают код 1, отсутствие вывода — 4. Те же коды может задать halt_error. Поэтому любой ненулевой код блокирует весь экспорт. stdout и диагностику можно просмотреть, но вывод может быть неполным.
Доступен только предоставленный ввод
Нет редактора --arg, режимов --stream и --seq, загрузки модулей, доступа к файловой системе, чтения URL и ссылок с данными. Команда использует правила кавычек POSIX, а не PowerShell или cmd. Функции, зависящие от окружения, видят среду WASM, а не ваш компьютер.

Вопросы о jq playground

Как отфильтровать массив объектов JSON с помощью jq?

Для примера на странице используйте .people[] | select(.age >= 18) | .name. Итератор [] выдаёт объекты по одному, select проверяет условие, а .name извлекает поле. Чтобы получить один массив, заключите всё выражение в квадратные скобки.

Как убрать двойные кавычки из вывода jq для обработки JSON в Bash?

Добавьте -r в параметры вывода. У строк исчезнут кавычки JSON, но пробелы внутри содержимого сохранятся. Объекты и массивы всё ещё выводятся в формате JSON. Если нужно убрать также разделители результатов, используйте -j.

Как вывести результаты select в jq в виде массива?

Запишите [.people[] | select(.age >= 18)]. Скобки собирают значения, выданные фильтром. Когда совпадений нет, получится [], а не пустой поток. Это удобно, если следующая команда всегда ожидает массив.

Как объединить несколько объектов JSON в массив?

Выберите «Собрать JSON (-s)» и выполните . для просмотра массива. Если на входе уже несколько массивов и нужно соединить их элементы, используйте -s с add. Для слияния объектов отдельно продумайте обработку повторяющихся ключей.

Как преобразовать пары key = value в JSON?

Для простых строк выберите «Строки текста (-R)» и начните с split("=") | {(.[0]): .[1]}. При необходимости удалите пробелы по краям ключей и значений. Если внутри значения тоже встречается знак =, понадобится другая логика разделения с учётом правил исходного формата.

Нашли запрос с неверным результатом?

Начните с короткого примера

Сравните map и поток нескольких результатов в jq playground, затем перенесите проверенную программу в свой скрипт.