Bash JSON Viewer — jless & JQ_COLORS

·Platform Engineer·ПровереноNadia Okonkwo·Опубликовано

Используйте бесплатный JSON Pretty Print прямо в браузере — установка не требуется.

Попробовать JSON Pretty Print онлайн →

Когда нужен просмотрщик JSON в bash для интерактивного исследования, а не для скриптинга, стандартный jq . не справляется — вывод прокручивается за верхнюю часть терминала, и нет возможности вернуться к 300-строчному ответу API. Это руководство охватывает инструменты, созданные специально для интерактивного просмотра JSON в терминале: jless (сворачиваемое дерево с vim-навигацией), JQ_COLORS для настройки цветовых тем, jq -C | less -R для цветной прокрутки, псевдонимы оболочки для ежедневного использования и fx как альтернатива на Node.js. Для скриптинга, CI/CD и рабочих процессов валидации см. сопутствующее руководство по форматированию JSON в Bash. Для браузерного просмотра без установки инструмент JSON Pretty Print работает мгновенно. Примеры протестированы на Bash 5.x (macOS через Homebrew, Ubuntu 22.04+) и совместимы с Bash 3.2+ (системная оболочка macOS).

КЛЮЧЕВЫЕ ВЫВОДЫ
  • jless — лучший интерактивный JSON-просмотрщик для терминала: сворачиваемое дерево, vim-клавиши, инкрементальный поиск
  • jq -C . | less -R — цветной прокручиваемый пейджер без дополнительной установки помимо jq
  • JQ_COLORS — переменная окружения для настройки ANSI-цветовой схемы jq для каждого типа JSON
  • fx — интерактивный JSON-просмотрщик на Node.js с поддержкой мыши и JavaScript-фильтрами
  • alias jv='jless' — однословная команда превращает интерактивный просмотр в привычку

Интерактивный vs. Скриптовый просмотр JSON

Передача JSON в jq . — правильный выбор для форматированного вывода небольших данных или когда результат подаётся в другую команду. Это неверный выбор, когда нужно исследовать ответ API с 200 полями — вывод промелькнёт в окне терминала и не даст никакой возможности навигировать, сворачивать разделы или искать конкретное поле без повторного запуска команды с фильтром. Интерактивные JSON-просмотрщики отображают тот же форматированный и цветной вывод внутри постоянного пейджера с управляемой навигацией. Данные идентичны; разница — в интерфейсе.

Before · Bash
After · Bash
# jq . — вывод прокручивается за экран для больших ответов
curl -s https://api.github.com/users/torvalds | jq .
# 300+ строк прокручиваются — контекст теряется мгновенно
# jless — открывает интерактивный пейджер, ничего не прокручивается
curl -s https://api.github.com/users/torvalds | jless
# Полный документ виден, сворачиваем, ищем с помощью j/k/h/l
Примечание:Интерактивные просмотрщики предназначены только для просмотра человеком — они не должны появляться в скриптах, CI-пайплайнах или автоматизации. Для программной обработки JSON используйте jq с явными фильтрами и обработкой кодов выхода. Паттерны скриптинга рассмотрены в руководстве по форматированию JSON в Bash.

jless — Интерактивный JSON-просмотрщик

jless — специализированный терминальный JSON-просмотрщик. В отличие от простого пайпа через jq, он отображает документ как постоянное сворачиваемое дерево: каждый объект и массив можно независимо разворачивать и сворачивать с помощью l и h, навигация использует vim-клавиши, а инкрементальный поиск мгновенно находит любой ключ или значение. Он читает ввод потоково, поэтому открывает большие файлы и ответы API менее чем за секунду независимо от размера — там, где jq буферизует весь документ перед отображением. Я первым делом тянусь к jless, когда ответ API слишком большой для беглого просмотра.

Установка

Bash
# macOS
brew install jless

# Linux — готовый бинарник с GitHub Releases
curl -sL https://github.com/PaulJuliusMartinez/jless/releases/latest/download/jless-x86_64-unknown-linux-gnu.tar.gz \
  | tar xz
sudo mv jless /usr/local/bin/

# Проверка
jless --version

Базовое использование

Bash
# Открыть локальный файл — интерактивный просмотрщик запускается немедленно
jless api-response.json

# Передать любой JSON-поток прямо в jless
curl -s https://api.github.com/users/torvalds | jless

# Открыть с всеми узлами, свёрнутыми до верхнего уровня (удобная отправная точка для больших документов)
jless --mode line api-response.json

# Загрузить конкретный элемент массива и просмотреть отдельно
jq '.[0]' deployments.json | jless

Навигация и поиск на практике

Bash
# Внутри jless:
#
#   j / ↓        вниз
#   k / ↑        вверх
#   l / →        развернуть узел (или Enter)
#   h / ←        свернуть узел
#   H            свернуть текущий + всех соседей → обзор верхнего уровня
#   L            развернуть всё рекурсивно
#
#   /            начать поиск вперёд — введите имя ключа и нажмите Enter
#   n / N        следующее / предыдущее совпадение
#
#   g / gg       перейти к началу
#   G            перейти к концу
#   q            выйти

Справочник клавиш jless

Все клавиши доступны сразу после открытия jless — никакой настройки не требуется. Модель навигации намеренно идентична vim, чтобы существующая мышечная память переносилась.

Клавиша
Действие
Когда использовать
j / ↓
Переместить курсор на строку вниз
Просматривая ключи объекта или элементы массива
k / ↑
Переместить курсор на строку вверх
Возвращаясь к предыдущему полю
J
Переместиться на 5 строк вниз
Быстрая прокрутка длинных массивов
K
Переместиться на 5 строк вверх
Быстрая навигация вверх
h / ← / -
Свернуть текущий узел
Скрыть большой вложенный объект для уменьшения шума
l / → / +
Развернуть текущий узел
Открыть свёрнутый объект или массив
H
Свернуть текущий узел и все соседние
Получить общий обзор структуры верхнего уровня
L
Рекурсивно развернуть все узлы
Раскрыть полную глубину вложенной структуры
g
Перейти к началу документа
Быстро вернуться к корневому элементу
G
Перейти к концу документа
Перейти к последнему элементу в большом массиве
/
Начать поиск вперёд
Найти конкретный ключ или значение в документе
?
Начать поиск назад
Поиск вверх от текущей позиции
n
Перейти к следующему совпадению
Перебирать все вхождения поискового запроса
N
Перейти к предыдущему совпадению
Шагать назад по результатам поиска
q
Выйти из jless
Выход после завершения проверки

jq -C | less -R — Цветная прокрутка без дополнительных инструментов

Если jless не установлен и нужен прокручиваемый цветной вид JSON-ответа, jq -C . | less -R является хорошим запасным вариантом. Флаг -C принудительно включает ANSI-коды цветов даже когда stdout является пайпом (обычно jq их убирает), а -R говорит less интерпретировать коды вместо вывода их как буквальный текст. Результат — полностью цветной, прокручиваемый документ — без интерактивной структуры дерева jless. Навигация внутри less использует клавиши со стрелками или vim-клавиши j/k, а / запускает встроенный текстовый поиск less.

Bash
# Базовый цветной пейджер
jq -C . response.json | less -R

# Из curl-ответа — -s предотвращает попадание индикатора прогресса в JSON-поток
curl -s https://api.github.com/repos/jqlang/jq | jq -C . | less -R

# Сортировать ключи для удобного визуального сканирования, затем просматривать
jq -CS . config.json | less -R
# -C = принудительный цвет, -S = сортировка ключей (оба флага объединены)

# Добавить псевдоним, чтобы не набирать полный пайп каждый раз
alias jqv='jq -C . | less -R'
# Использование: cat response.json | jqv
#    или: curl -s https://api.example.com/status | jqv
Примечание:jq -C | less -R буферизует весь форматированный вывод прежде чем less сможет его отобразить. На файле 200 МБ это означает ожидание нескольких секунд и значительный расход памяти — то же ограничение, что у обычного jq .. Для больших файлов используйте jless, который читает данные потоково.

JQ_COLORS — Настройка цветовых тем

JQ_COLORS — переменная окружения, переопределяющая стандартную ANSI-цветовую схему jq. Она принимает строку из семи кодов вида attribute;color, разделённых двоеточиями, по одному для каждого типа JSON в фиксированном порядке: null : false : true : числа : строки : массивы : объекты. Каждый код имеет формат атрибут;цвет, где атрибут — это 0 (обычный), 1 (жирный), 2 (тусклый) или 4 (подчёркнутый), а цвет — стандартный номер ANSI (30–37 = стандартные, 90–97 = яркие).

Bash
# Справочник ANSI-цветов для построения JQ_COLORS:
#   Атрибуты:  0=обычный  1=жирный  2=тусклый  4=подчёркнутый
#   Цвета:     30=чёрный  31=красный  32=зелёный  33=жёлтый
#              34=синий   35=пурпурный  36=голубой  37=белый
#   Яркие:     90=ярко-чёрный  91=ярко-красный  92=ярко-зелёный  93=ярко-жёлтый
#              94=ярко-синий  95=ярко-пурпурный  96=ярко-голубой  97=ярко-белый
#
# Порядок: null : false : true : числа : строки : массивы : объекты

# Высококонтрастная тема для тёмных терминалов (рекомендуется)
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"
# null=тёмно-серый, false=ярко-красный, true=ярко-зелёный,
# numbers=ярко-жёлтый, strings=зелёный, arrays=жирный-голубой, objects=жирный-голубой

# Тема в стиле Solarized
export JQ_COLORS="2;37:0;35:0;35:0;36:0;33:1;34:1;34"
# null=тусклый-белый, false=пурпурный, true=пурпурный,
# numbers=голубой, strings=жёлтый, arrays=жирный-синий, objects=жирный-синий

# Минималистичная (только жирные ключи, всё остальное обычное)
export JQ_COLORS="0;90:0;39:0;39:0;39:0;39:1;39:1;39"
Bash
# Добавьте выбранную тему в ~/.bashrc или ~/.zshrc для применения ко всем вызовам jq
echo 'export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"' >> ~/.bashrc
source ~/.bashrc

# Тест темы
echo '{"active":true,"errors":null,"count":42,"tags":["api","v2"],"meta":{"version":"1.0"}}' | jq .
Внимание:JQ_COLORS должна содержать ровно семь значений, разделённых двоеточиями. Если строка содержит меньше сегментов, jq молча возвращается к встроенным настройкам без какого-либо сообщения об ошибке — из-за чего некорректная конфигурация сложно диагностируется. Всегда тестируйте новую строку цветов на коротком JSON-пейлоаде перед добавлением в профиль оболочки.

Псевдонимы оболочки для ежедневного просмотра JSON

Команды для интерактивного просмотра JSON по умолчанию многословны. Небольшой набор псевдонимов в ~/.bashrc или ~/.zshrc делает jless и цветную прокрутку однословными командами, которые органично вписываются в любой рабочий процесс. Псевдонимы ниже компонуются — jv и jvp принимают и пайпный ввод, и имя файла первым аргументом.

Bash
# Добавьте в ~/.bashrc или ~/.zshrc

# jv — интерактивный просмотрщик (jless если доступен, иначе цветной пейджер)
jv() {
  if command -v jless &>/dev/null; then
    jless "$@"
  else
    jq -C . "$@" | less -R
  fi
}

# jvp — просмотр с ключами, отсортированными по алфавиту (удобно для сравнения ответов)
alias jvp='jq -CS . | less -R'

# jvc — просмотр из буфера обмена (macOS)
alias jvc='pbpaste | jless'

# jvf — просмотр с фильтром: jvf '.users[0]' response.json
jvf() {
  local filter="$1"; shift
  jq -C "$filter" "$@" | less -R
}

# Перезагрузка без перезапуска терминала
source ~/.bashrc
Bash
# Примеры использования после добавления псевдонимов

# Просмотр файла или пайпного ответа
jv deployment-config.json
curl -s https://api.github.com/users/torvalds | jv

# Просмотр с сортировкой (удобно сканировать по алфавиту)
cat feature-flags.json | jvp

# Детальный просмотр поддокумента
jvf '.database' infra/app-config.json
jvf '.users[] | select(.role == "admin")' users.json

bat — Просмотр JSON-файлов с подсветкой синтаксиса

bat — замена cat с подсветкой синтаксиса, номерами строк и встроенным пейджером. Для JSON-файлов на диске он обеспечивает чистый просмотр в стиле редактора без открытия полноценного текстового редактора. В отличие от jless, bat отображает файл как статический текст — без сворачивания, без поиска, без навигации помимо прокрутки. Его сила — визуальная чёткость для статических файлов среднего размера (конфиги, фикстуры, тестовые пейлоады), где нужна подсветка синтаксиса и номера строк, но не нужна интерактивная навигация по дереву.

Bash
# macOS
brew install bat

# Debian / Ubuntu (бинарник может называться batcat)
apt-get install -y bat
# alias bat=batcat   # добавьте в ~/.bashrc если нужно на Ubuntu

# Просмотр JSON-файла с подсветкой синтаксиса и номерами строк
bat config/feature-flags.json

# Отключить пейджер — вывод прямо в терминал (полезно в скриптах)
bat --paging=never api-response.json

# Комбинировать с jq: форматировать через jq, просматривать через bat (сохраняет подсветку JSON)
jq '.' response.json | bat --language=json --paging=never
Примечание:Используйте bat для чтения статических конфигурационных файлов и тестовых фикстур, где важны номера строк (например, когда падение теста ссылается на строку 47 в файле фикстуры). Для ответов API и динамического JSON из curl jless быстрее открывается и удобнее для навигации. Если нужно просмотреть в браузере и поделиться с коллегой, вставьте прямо в инструмент JSON Pretty Print — терминал не нужен.

fx — Интерактивный JSON-обозреватель на Node.js

fx — интерактивный JSON-просмотрщик на Node.js. Его интерфейс похож на jless — сворачиваемое дерево, клавиатурная навигация, поиск — но добавляет две функции, которых нет в jless: поддержка мыши (клик для разворачивания/сворачивания узлов) и возможность ввести JavaScript-выражение в нижней строке для фильтрации документа в реальном времени. Для команд, уже использующих Node.js, fx подходит органично и не требует отдельного бинарника. Для чистых терминальных сред без Node jless — более легковесный выбор.

Bash
# Глобальная установка через npm
npm install -g fx

# Или запуск без установки (npx кеширует пакет)
curl -s https://api.github.com/users/torvalds | npx fx

# Базовое интерактивное использование
fx api-response.json
curl -s https://api.github.com/repos/jqlang/jq | fx

# В fx: клавиши со стрелками для навигации, Enter для разворачивания/сворачивания, / для поиска
# Нижняя строка принимает JavaScript-выражения для живой фильтрации:
#   .name           → показать только поле "name"
#   .repos.slice(0,5) → первые 5 репозиториев
Bash
# fx также работает как неинтерактивный форматтер (как jq . но с JS-синтаксисом)
# Передайте JavaScript-выражение как аргумент — без интерактивного режима
echo '{"users":[{"id":1,"name":"Sarah Chen"},{"id":2,"name":"Marcus Osei"}]}' \
  | fx '.users[0].name'
# Sarah Chen

# Цепочка с map для преобразования массивов
cat deployments.json | fx '.items.map(d => ({id: d.deploy_id, status: d.state}))'

Типичные ошибки

Четыре ошибки, которые встречаются снова и снова, когда разработчики начинают использовать терминальные JSON-просмотрщики — у каждой есть чёткое решение, как только понимаешь причину.

Использование jq . для просмотра больших ответов (вывод прокручивается за экран)

Проблема: jq . сбрасывает весь вывод в stdout сразу. Для ответов длиннее высоты терминала всё, что выше последнего экрана, исчезает — нельзя прокрутить назад к началу или перейти к конкретному полю.

Решение: Используйте пайп в jless для интерактивной навигации, или jq -C . | less -R как запасной вариант. Оба сохраняют весь документ доступным независимо от размера.

Before · Bash
After · Bash
# 300-строчный ответ API — первые 280 строк сразу прокручиваются
curl -s https://api.github.com/users/torvalds | jq .
# Виден только конец вывода — вернуться назад нельзя
# Полный документ доступен в jless — ничего не теряется
curl -s https://api.github.com/users/torvalds | jless
# j/k для прокрутки, h/l для сворачивания/разворачивания, / для поиска
Задание JQ_COLORS с неверным количеством сегментов

Проблема: JQ_COLORS требует ровно семь значений, разделённых двоеточиями. Если строка содержит шесть или восемь значений, jq молча игнорирует всю переменную и возвращается к встроенным настройкам — без предупреждений, без ошибок, просто неправильные цвета.

Решение: Посчитайте двоеточия: в корректной строке JQ_COLORS ровно шесть двоеточий и семь значений. Выведите переменную и передайте в tr для подсчёта.

Before · Bash
After · Bash
# Только 6 значений — jq молча использует настройки по умолчанию, без указания причины
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96"
echo '{"ok":true}' | jq .  # цвета не изменились — ошибка не показана
# Ровно 7 значений — 6 двоеточий
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"

# Проверить количество перед добавлением в профиль оболочки
echo "$JQ_COLORS" | tr -cd ':' | wc -c   # должно вывести 6
Передача вывода jless или fx в другую команду

Проблема: jless и fx выводят свой интерактивный интерфейс в терминал (TTY), а не в stdout. Передача их в grep, tee или любую другую команду производит искажённые ANSI escape-коды или пустой вывод — интерактивный вывод просмотрщика не предназначен для обработки другими программами.

Решение: Используйте jq с явным фильтром для программного извлечения данных. Используйте jless и fx только как финальный шаг в пайплайне, когда человек читает вывод.

Before · Bash
After · Bash
# Вывод jless предназначен для людей — передача его производит мусор
jless response.json | grep "request_id"
# Вывод: ANSI escape-коды и управляющие последовательности, не чистый текст
# Используйте jq для программного извлечения — чисто и компонуемо
jq -r '.request_id' response.json | grep "req_"

# Используйте jless только как конечную точку в терминале — ничего после него
jless response.json
Использование jq -C без less -R (коды цветов выводятся как буквальный текст)

Проблема: -C принудительно включает ANSI-коды цветов в поток вывода. Когда этот поток выводится напрямую в терминал не в raw-режиме — или передаётся инструменту, не интерпретирующему ANSI — escape-последовательности появляются как буквальные символы, например ^[[1;34m, засоряющие вывод.

Решение: Всегда сочетайте jq -C с less -R. Флаг -R переводит less в режим raw-input, заставляя его интерпретировать ANSI-последовательности как цвета вместо вывода их как текст.

Before · Bash
After · Bash
# -C без -R: escape-последовательности выводятся как сырой текст
jq -C . response.json | less
# Вывод: ^[[1;34m"status"^[[0m: ^[[0;32m"ok"^[[0m ...
# -C с -R: ANSI-коды интерпретируются как настоящие цвета
jq -C . response.json | less -R
# Вывод: цветной JSON, чистый и читаемый

jless vs jq vs bat vs fx — Сравнение интерактивных просмотрщиков

Все четыре инструмента отображают цветной JSON, но их интерактивные возможности существенно различаются. Выбирайте исходя из того, нужна ли сворачиваемая навигация, поиск или поддержка мыши — и есть ли Node.js в вашей среде.

Инструмент
Интерактивная навигация
Поиск
Сворачиваемость
Цвет
Большие файлы
Установка
jless
✅ vim-клавиши
✅ (/, n, N)
✅ (клавиши h/l)
✅ (встроен)
✅ (потоковый)
brew / binary
jq -C | less -R
⚠️ (только less)
✅ (/ в less)
✅ (ANSI)
⚠️ (буферизует всё)
только jq
fx
✅ клавиши со стрелками
✅ (/)
⚠️ (загрузка JS)
npm install -g fx
bat
⚠️ (только пейджер)
❌ (в bat)
✅ (тема)
⚠️ (читает всё)
brew / apt
jq . (plain)
❌ (прокручивается)
✅ (только tty)
brew / apt

В большинстве случаев: установите jless один раз и используйте как интерактивный просмотрщик по умолчанию. Держите jq -C . | less -R как запасной вариант для сред, где нельзя устанавливать дополнительные бинарники. Добавьте fx если ваша команда работает в первую очередь на Node.js и ценит навигацию мышью или живую JavaScript-фильтрацию.

Часто задаваемые вопросы

Как найти конкретный ключ в JSON-файле в терминале?

В jless нажмите /, чтобы открыть строку инкрементального поиска, введите имя ключа и нажмите Enter. Используйте n для перехода к следующему совпадению и N для предыдущего. Поиск чувствителен к регистру по умолчанию. В jq -C | less -R символ / запускает встроенный поиск less, который сопоставляет сырой текст включая ANSI-коды цветов — поиск в jless надёжнее для структурированного JSON.

Bash
# Открыть файл в jless, затем нажать / для поиска
jless api-response.json
# В jless: введите /  →  "request_id"  →  Enter  →  n для следующего совпадения

# Альтернатива через jq: извлечь и вывести все совпадающие ключи
jq '.. | objects | with_entries(select(.key == "request_id"))' api-response.json

Как навигировать по глубоко вложенной JSON-структуре с помощью клавиатуры?

jless копирует навигацию vim: j/k для движения вверх/вниз, h для сворачивания узла, l для разворачивания. Нажмите H, чтобы свернуть текущий узел и всех соседей сразу — полезно для получения общего обзора перед углублением в конкретную ветку. L разворачивает всё рекурсивно. Свернув всё до верхнего уровня, разворачивайте только нужный путь с помощью l.

Bash
# Открыть ответ в jless
curl -s https://api.github.com/repos/jqlang/jq | jless
# В jless:
#   H            → свернуть все ключи верхнего уровня
#   j/k          → перейти к нужному ключу
#   l            → развернуть только эту ветку
#   gg           → вернуться к корню
#   G            → перейти к последнему элементу

Как сделать цветной вывод jq удобнее для чтения на тёмном терминале?

Задайте переменную окружения JQ_COLORS с кодами ANSI attribute;color для каждого типа JSON. Семь позиций в порядке: null, false, true, числа, строки, массивы, объекты. Добавьте export в ~/.bashrc или ~/.zshrc для применения ко всем вызовам jq. Жирный яркий цвет лучше всего смотрится на тёмном фоне.

Bash
# Высококонтрастная тема для тёмных терминалов — добавьте в ~/.bashrc или ~/.zshrc
export JQ_COLORS="1;30:0;91:0;92:0;93:0;32:1;96:1;96"
# null=серый, false=ярко-красный, true=ярко-зелёный,
# numbers=ярко-жёлтый, strings=зелёный, arrays/objects=ярко-голубой

# Тест без перезагрузки оболочки
echo '{"active":true,"errors":0,"tags":["api","v2"]}' | jq .

В чём разница между jless и jq . для просмотра JSON?

jq . прокручивает вывод мимо верхней части терминала и не даёт возможности вернуться назад — удобно для небольших ответов, но непрактично для всего свыше 50 строк. jless отображает весь документ в интерактивном пейджере, где можно прокручивать, искать, сворачивать узлы и навигировать с клавиатуры без потери контекста. Используйте jq . для быстрого просмотра небольших данных; jless — когда нужно исследовать.

Bash
# Небольшие данные — jq . подходит
echo '{"status":"ok","version":"2.4.1"}' | jq .

# Большой или вложенный ответ — лучше jless
curl -s https://api.github.com/repos/jqlang/jq | jless
# → интерактивное дерево, ничего не прокручивается за экран

Как интерактивно просматривать JSON из ответа curl в терминале?

Передайте curl напрямую в jless. Всегда используйте -s (silent), чтобы индикатор прогресса curl не появлялся в выводе. jless откроет интерактивный просмотрщик с полным ответом в виде сворачиваемого дерева. Если jless не установлен, jq -C . | less -R обеспечит цветной пейджер в качестве запасного варианта.

Bash
# Интерактивное исследование через jless
curl -s https://api.github.com/users/torvalds | jless

# Запасной вариант — цветной пейджер (без сворачивания, но с прокруткой и цветом)
curl -s https://api.github.com/users/torvalds | jq -C . | less -R

Можно ли просматривать несколько JSON-файлов рядом в терминале?

jless открывает по одному файлу за раз. Для сравнения рядом используйте терминальный мультиплексор: tmux split-window -h открывает вертикальное разделение, затем запустите jless в каждой панели с разными файлами. В качестве альтернативы используйте браузерный инструмент JSON Diff для структурного сравнения двух документов.

Bash
# tmux рядом: разделить горизонтально, затем запустить jless в каждой панели
tmux split-window -h
# Левая панель:  jless response-v1.json
# Правая панель: jless response-v2.json

# Или использовать diff на нормализованном через jq выводе
diff <(jq -S . response-v1.json) <(jq -S . response-v2.json)

Связанные инструменты

Инструмент JSON Pretty Print даёт тот же сворачиваемый, цветной вид, что и jless — прямо в браузере, без установки и без терминала.

CM
Cora MatsumotoPlatform Engineer

Cora is a platform engineer who builds developer tooling and internal platforms, using Bash as the glue that connects components written in different languages and runtimes. She writes about cross-platform shell scripting, Bash utility functions, environment management, configuration templating, and the practical shell techniques that platform engineers use to build self-service tooling for development teams.

NO
Nadia OkonkwoТехнический рецензент

Nadia is a site reliability engineer who lives in the terminal. She writes Bash scripts that process logs, transform data, and orchestrate infrastructure across fleets of servers. She is a heavy user of jq, awk, and sed and writes about shell one-liners, text processing pipelines, data serialisation from the command line, and the practical Bash patterns that SREs reach for when speed matters more than elegance.