Вчера снова потратил 15 минут на бессмысленный ритуал: скопировал JSON из API-ответа → вставил в веб-форматтер → скачал обратно → подправил отступы вручную. В какой-то момент мозг выдал error 500: «Серьёзно? В 2024 году я всё ещё делаю это руками?»
Что не так с существующими решениями
jq — мощный, но его синтаксис приходится гуглить даже после 5 лет использования. Prettier хорош для проектов, но неудобен для разовых операций. Онлайн-форматтеры требуют танцев с бубном вокруг copy-paste и часто добавляют рекламные trackers в ваш JSON (шутка… или нет).
json-tidy-pro решает три конкретные боли:
-
Форматирование без контекстного переключения
npx json-tidy-pro format messy.json --indent 2 --sort-keysБольше не нужно уходить из терминала. Поддерживает кастомные отступы, сортировку ключей и даже цветной вывод через
--color. -
Валидация с человекочитаемыми ошибками
В отличие от сухогоjq empty < file.json, здесь есть детализация:$ npx json-tidy-pro validate broken.json Error: Parse error at line 3, column 15: Expected ',' after object propertyПлюс проверка дубликатов ключей и опциональная схема через
--schema. -
Конвертация между форматами
Особенно полезно для DevOps-сценариев:# Конфиг в YAML для Kubernetes npx json-tidy-pro convert config.json --to yaml > deployment.yml
Под капотом
Заглянул в исходники — внутри используется тот же парсер, что и в VSCode (jsonc-parser), но с добавленным слоем для работы с разными форматами. Интересные находки:
- Поддержка JSON5 через флаг
--loose - Автоматическое исправление распространённых ошибок (например, trailing commas)
- Streaming-режим для больших файлов
Где спотыкается
Не всё идеально: при конвертации в CSV вложенные объекты просто сериализуются в строку, что не всегда полезно. Нет встроенной возможности фильтрации данных à la jq '.user.name'. И главное — пока нет плагина для редактора, чтобы форматировать JSON прямо в буфере.
Альтернативы на случай, если…
- Нужен максимальный контроль:
jq+yq(для YAML) - Работа в проекте: Prettier с json-plugin
- Для разовых операций:
python -m json.tool(если уже есть Python)
Вывод
json-tidy-pro — это не «инновационный прорыв», а просто удобный сниппет, который избавляет от рутины. Особенно рекомендую для:
- Админов, которые правят конфиги в SSH-сессии
- QA-инженеров, работающих с API-ответами
- Разработчиков, уставших от форматеров с GUI
Лично я добавил алиас в .zshrc:
alias jt='npx json-tidy-pro format --color'
Теперь вместо curl ... | jq иногда ловлю себя на curl ... | jt. Мелкий, но приятный апгрейд повседневного workflow.
Попробуй сам: DigitalOcean — $200 кредитов для новых пользователей.
Источник: https://dev.to/lb1192176991lab/json-tidy-stop-manually-formatting-json-files-1adj