Узнать местность до надреза
Хирургия начинается со снимка. JSON-документ любой глубины прячет свою структуру от беглого чтения — один и тот же ключ на двух уровнях значит два разных смысла, массив на месте ожидавшегося объекта ломает правило, которое вы собирались написать, — и карта ключей превращает эту тёмную местность в список на бумаге. Каждый путь появляется единожды, неожиданности всплывают до того, как против них напишут правила, и карта становится базовой линией всего дальнейшего — перегенерируйте её после каждой операции, и расхождение между картами есть честная квитанция этой операции.
Два диалекта адресации
Адресация JSON приходит в двух регистрах, и перепутать их — классический налог новичка. Указатель — RFC 6901 — точный адрес: /data/items/0/price называет один узел, разрешается или падает, и это диалект, на котором говорит сам JSON Patch. Запрос по пути — в духе JSONPath или JMESPath — это поиск: шаблоны, фильтры и проекции, возвращающие множества узлов и ничего не стоящие на пробу. Дисциплина, держащая их по местам, проста — исследуйте путями, оперируйте указателями — ибо операция, точно называющая свою цель, есть операция с предсказуемым результатом.
Патчи — это письменный след
Отредактировать JSON-файл напрямую — получить результат; применить патч RFC 6902 — получить результат и протокол. Патч есть упорядоченная последовательность именованных операций — добавить, удалить, заменить, переместить — каждая целится указателем, отчего он читаем до запуска, проштудируем как diff, повторяем на свежих входах и архивируем как аудиторский след того, что сделано с данными и в каком порядке. Переименование следует той же логике на уровне ключей — правило, совпадающее с шаблоном, действует везде, где шаблон живёт, и нигде больше — без сорок первой ручной правки, обнаруженной пропавшей, когда сорок предыдущих уже выглядели хорошо.
Уплощить в дорогу, восстановить к возвращению
Плоские строки пар ключ-значение — лингва франка электронных таблиц, diff-инструментов и половины мира конвейеров; вложенный JSON — родной язык API. Уплощитель наводит мост туда — вложенность сжата в ключи, соединённые разделителем, — восстановитель наводит мост обратно. Гарантия, которая важна, — полный круг: уплощить, восстановить, глубоко сравнить с оригиналом — и структура доказано цела. Единственная предпосылка — проверка коллизий: ключ с разделителем внутри имени не переживёт путешествие, поэтому разделитель выбирается против реально присутствующих имён, а не по привычке.
Где этот воркфлоу останавливается
Эта страница переустраивает структуру и доказывает переустройство — она не запрашивает значения, не конвертирует между форматами, не сертифицирует форму. Вытягивать данные из JSON запросом — дело воркфлоу извлечения и трансформации; форматирование, валидация и слияние документов — здоровье воркфлоу утилит; перевод JSON в YAML, CSV или BSON — конвертационный воркфлоу; а обращение структуры в типы TypeScript или schema — бизнес воркфлоу типизированного кода и вывода схемы. Режьте здесь, проверяйте путь туда-обратно и передавайте документ соседу, владеющему следующим вопросом.