macOS Data Toolbelt
└─ cd ../projects
JSONEditor

// native macOS app · swift · [●] live

JSONEditor

JSON как дерево, а не стена текста. Дабл-клик по .json в Finder — и файл открывается исследуемым деревом с подсветкой типов, вместо того чтобы вставлять его в текстовый редактор и каждый раз городить pretty-print руками.

macOS 14+tree view.jsonl / .ndjsonбез Xcodefree & open source
JSONEditor — дерево
└─01

ДЕРЕВО, А НЕ ТЕКСТ

Подсветка по типу. Число, строка, bool, null, массив и объект — каждый своим цветом, видно структуру с одного взгляда.
Раскрытие/сворачивание. Expand/collapse по узлу или всё сразу — навигация по большому документу без бесконечного скролла текста.
JSONPath под рукой. Бар показывает путь к выделению ($.artists[3].name) с кнопкой копирования.
Копировать узел. Как JSON ⌘C или как JSONPath ⌘⌥C — то, что нужно, без ручной возни.
└─02

DIFF ДВУХ ФАЙЛОВ

// что добавилось, изменилось, пропало
diff

Сравнение деревом, бок о бок

Два JSON рядом, узел к узлу. Зелёным — добавленное, красным — удалённое, жёлтым — изменённые значения. Видно разницу между прод-конфигом и стейджингом или вчерашним и сегодняшним дампом — без diff по тексту. Второй файл можно открыть или вставить из буфера.

JSONEditor — diff
└─03

ЧТО УМЕЕТ

поиск

Find ⌘F по ключам и значениям с переходом prev/next по совпадениям.

из буфера

New from Clipboard ⌘⇧V — вставил любой JSON, сразу видишь дерево, сохранять не обязательно.

.jsonl / .ndjson

Открывает построчный JSON как синтетический массив верхнего уровня — удобно для логов и дампов.

массив → таблица

Массив однотипных объектов можно смотреть таблицей, как грид — а не длинным списком веток.

pretty-print

Сохранение с авто-форматированием в 2 пробела — на выходе всегда аккуратный JSON.

документная модель

Несколько окон через DocumentGroup, Open Recent, Reveal in Finder ⇧⌘R, зум ⌘+/⌘−/⌘0.

по умолчанию

По желанию — предложение стать приложением по умолчанию для .json при первом запуске.

└─04

ПОЧЕМУ ТАК

// третий из трёх

JSONEditor закрывает JSON в линейке рядом с Squire (SQLite) и Csvoir (CSV). Общая ДНК: маленькое нативное приложение под один формат, SwiftUI + AppKit (NSOutlineView для дерева), без внешних зависимостей и без Xcode — только Command Line Tools и ad-hoc подпись.

NSOutlineView в SwiftUI. Дерево через NSViewRepresentable поверх кастомного представления JSONNode — производительно на больших файлах.
ReferenceFileDocument. Документная архитектура macOS: каждое окно — свой документ, нативные сохранение и undo.
Даже иконка без зависимостей. Генерится процедурно скриптом на CoreGraphics — в духе «всё своё, ничего лишнего».
Собирается без Xcode. SPM + shell-скрипт, ad-hoc подпись, запуск локально без аккаунта разработчика.
└─05

SPEC

platformmacOS 14+ · Swift 6
uiSwiftUI · DocumentGroup · AppKit NSOutlineView
formats.json · .jsonl · .ndjson · pretty-print 2sp
coreJSONNode tree · ReferenceFileDocument · zero deps
buildSPM + shell · Command Line Tools · ad-hoc signing
licensefree & open source · alcovegan

Дабл-клик по .json — и ты в дереве.

$ open data.json └─ вернуться ко всем проектам