Я устал от форматирования JSON файлов

Я много и часто просматриваю JSON-файлы: от конфигураций сервисов до API ответов и логов. Каждый раз, открывая очередной файл, я форматирую содержимое, чтобы было удобнее читать (ведь JSON не только machine-readable, но и human-readable). И каждый раз я грущу, что все сервисы (онлайн, встроенные средства IDE и даже плагины) предоставляют лишь две крайности: форматировать всё или ничего (минифицировать в одну строку).
Но что, если я хочу отформатировать JSON лишь до определённого уровня? Что, если у меня есть огромный список словарей (возможно, даже глубоких), который при форматировании выглядит как-то так:
[ { "id": 1, "name": "Alice", "birthday": { "day": 5, "month": 4, "year": 1983 } }, { "id": 2, "name": "Bob", "birthday": { "day": 6, "month": 2, "year": 1945 } }, { "id": 3, "name": "Eve", "birthday": { "day": 10, "month": 11, "year": 1978 } } ]
Что, если я хочу оставить каждый словарь в более компактном (не совсем минифицированном) виде? Например, таком:
[ {"id": 1, "name": "Alice", "birthday": {"day": 5, "month": 4, "year": 1983}}, {"id": 2, "name": "Bob", "birthday": {"day": 6, "month": 2, "year": 1945}}, {"id": 3, "name": "Eve", "birthday": {"day": 10, "month": 11, "year": 1978}} ]
Или я хочу, чтобы в каждом словаре развёрнуты были только внешние ключи?
[ { "id": 1, "name": "Alice", "birthday": {"day": 5, "month": 4, "year": 1983} }, { "id": 2, "name": "Bob", "birthday": {"day": 6, "month": 2, "year": 1945} }, { "id": 3, "name": "Eve", "birthday": {"day": 10, "month": 11, "year": 1978} } ]
Да, многие текстовые редакторы вроде Sublime Text или VS Code дают возможность свернуть контент до определённого уровня. Но что, если я хочу оставить файл в этом промежуточном виде и просматривать его прямо в терминале, подключившись по ssh? Или я хочу посмотреть файл на гитхабе с телефона? Да, возможно, мои вкусы весьма специфичны, но в существующих реалиях я вынужден грустно довольствоваться лишь полностью развёрнутым вариантом (или делать это вручную). Встроенные средства форматирования JSON в JS или Python также не предоставляют простой возможности ограничить глубину (либо я так и не научился их готовить).
Поэтому я собрался с силами и написал свой форматтер с возможностью ограничить глубину. Помимо базового функционала вроде валидации, минификации и настройки количества отступов, в нём есть настройка максимальной глубины (по умолчанию она равна нулю, что соответствует привычному форматированию без ограничений).
Да, он вряд ли подойдёт, чтобы редактировать на лету гигантские JSON файлы. И он уж точно не пытается стать убийцей какого-либо из существующих онлайн сервисов. В первую очередь он призван решить мою проблему: сделать форматирование JSON чуточку более управляемым. А если и вы сталкивались с подобной проблемой, буду рад, если сервис поможет и вам!












