# Хирургия структуры JSON

Оперируйте структуру JSON с записью каждого надреза — до всякого касания снимите карту путей ключей, адресуйте узлы точно указателями RFC 6901 или гибко запросами JSONPath, переименуйте ключи по правилу, а не вручную, применяйте патчи RFC 6902 как аудируемую последовательность операций и уплощайте для поездки с путём назад без потерь.

> Каноническая страница: https://elysiatools.com/ru/hubs/json-structure-surgery

- **Ключевые слова:** уплощить вложенный JSON, восстановить вложенность JSON, переименовать ключи JSON, JSON Patch RFC 6902, JSON Pointer RFC 6901, запрос JSONPath, извлечь ключи JSON, переустроить JSON

## Частые вопросы

### Уплощить и восстановить — правда без потерь?

Да, когда разделитель не может встретиться внутри ключа — потому проверка коллизий идёт первой. Точки внутри имён ключей, массивы массивов и пустые объекты — классические жертвы пропущенной проверки; с верным разделителем и намеренной пробой мерзких случаев глубокое сравнение после пути туда-обратно и есть доказательство.

### Что даёт патч по сравнению с правкой файла?

След. Патч — список именованных операций — добавить, удалить, заменить, переместить — каждая целится указателем, а значит, его можно прочесть до запуска, проштудировать как diff, повторить на том же входе и заархивировать как запись о том, что сделано и почему. У правки есть результат; у патча есть результат и история.

### Когда беру инструмент указателя, а не пути?

Указатель — адрес скальпеля — один точный узел, и диалект, на котором говорит сам формат патча, так что свобода с указателями — предпосылка патчей. Запрос по пути — это поиск — шаблоны, фильтры, множества узлов — чтобы разглядеть, что существует, прежде чем решать, что оперировать. Исследуйте путями, оперируйте указателями.

### Зачем вообще снимать карту ключей?

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

## Связанные материалы

- [Извлечение, преобразование и происхождение полей JSON](https://elysiatools.com/ru/hubs/json-extraction-transformation-and-provenance): Извлекайте поля JSON по путям, преобразуйте payload с помощью JSONata и фиксируйте происхождение каждого поля, не выдавая это за проверку бизнес-смысла.
- [Инструменты JSON для проверки, утилит и преобразования](https://elysiatools.com/ru/hubs/json-utility): Форматируйте, проверяйте, сравнивайте, объединяйте, преобразуйте, валидируйте, анализируйте и маркируйте JSON для API и данных.
- [Процесс нормализации и обмена через JSON](https://elysiatools.com/ru/hubs/json-convert): Преобразуйте структурированный источник в проверенное JSON-представление, затем экспортируйте именно ту форму таблицы, конфигурации, документа, API, XML, CSON, EDN, BSON или UBJSON, которая нужна дальше.
- [Генераторы типизированного кода из JSON](https://elysiatools.com/ru/hubs/json-to-typed-code-generators): Генерируйте типизированные модели из JSON или schema для TypeScript, Go, Rust, Kotlin, Java, C# и Zod-валидации.
- [Вывод JSON Schema из примеров и таблиц](https://elysiatools.com/ru/hubs/json-schema-inference-from-samples-and-spreadsheets): Получите проверяемый черновик JSON Schema из репрезентативных JSON-примеров или строк XLSX, а затем проверьте типы, обязательность, null и выбросы до использования схемы как контракта.
