JSON Toolkit

Часто задаваемые вопросы

Собрание самых частых вопросов об инструментах сайта и о спецификации JSON, упорядоченное по сценариям, с ответом, который можно сразу применить, вместо расплывчатого вывода.

Статей: 25

Статьи в этой категории

Вопросы об использовании инструментов: данные, файлы и экспорт

Загружаются ли данные, какой размер файла работает, сохраняется ли что-то локально, почему китайский превращается в escape-последовательности: десять вопросов, разъясняющих реальные границы онлайн-инструмента JSON.

Начинающий~10 мин чтенияОбновлено 2026-10-30

Вопросы о синтаксисе и форматах: комментарии, висячие запятые и точность

Разрешены ли комментарии, почему висячая запятая даёт ошибку, нужно ли брать ключи в кавычки, почему 9007199254740993 меняется — двенадцать выводов, каждый проверен по RFC 8259.

Начинающий~12 мин чтенияОбновлено 2026-10-30

Вопросы о запросах и валидации: JSONPath и Schema

Использовать для запросов по пути JSONPath или Pointer, как выбрать между Patch и Merge Patch, что способна блокировать Schema и как выбрать версию драфта — всё объясняется за один проход.

Средний~12 мин чтенияОбновлено 2026-10-30

Вопросы о производительности и безопасности: медленно, подвисает и недоверенные данные

Почему JSON-файл в десятки мегабайт не открывается, насколько дорого глубокое клонирование, как предотвратить загрязнение __proto__ и откуда проникает XSS — десять выводов первой помощи, упорядоченных по симптому.

Средний~13 мин чтенияОбновлено 2026-10-30

Вопросы о командной работе: контракты, конфигурация и фикстуры

Стиль именования, форматы времени, семантика null, формы перечислений, форматы конфигураций, организация фикстур и конфликты слияния — двенадцать компромиссов, о которых команды действительно спорят.

Средний~12 мин чтенияОбновлено 2026-10-30

Может ли JSON содержать комментарии

В RFC 8259 нет синтаксиса комментариев, поэтому // и блочные комментарии заставляют JSON.parse выбрасывать ошибку. Используйте JSON5 или JSONC, поле _comment, описание Schema или YAML.

Начинающий~3 мин чтенияОбновлено 2026-10-30

Почему висячая запятая ломает JSON

Висячие запятые легальны в литералах объектов JavaScript и фатальны в JSON. Вот точная ошибка, грамматика RFC 8259, которая её вызывает, и три исправления, которые действительно работают.

Начинающий~3 мин чтенияОбновлено 2026-10-30

Ломает ли BOM парсинг JSON

UTF-8 BOM — это три невидимых байта, поэтому JSON.parse падает на первом символе и сообщает строку 1, столбец 1, из-за чего файл кажется пустым или усечённым.

Начинающий~4 мин чтенияОбновлено 2026-10-30

Могут ли NaN или Infinity появляться в JSON

В JSON только десятичные числовые литералы. JSON.stringify превращает NaN и Infinity в null без предупреждения, из-за чего «числовое поле иногда null» продолжает появляться в продакшене.

Начинающий~3 мин чтенияОбновлено 2026-10-30

Почему большие целые теряют точность

Целые выше 2^53-1 теряют точность в JSON.parse. Snowflake ID, номера заказов и bigint из базы данных все с этим сталкиваются, поэтому храните их как строки от начала до конца.

Средний~4 мин чтенияОбновлено 2026-11-04

Почему китайский превращается в \u4e2d\u6587

Escape-последовательность \u4e2d\u6587 — это легитимный Unicode, а не сбой кодировки. Настоящее искажение выглядит иначе, и различение решает, что именно нужно исправлять.

Начинающий~3 мин чтенияОбновлено 2026-10-30

JSON vs JSON5 vs JSONC

Строгие надмножества по порядку: JSONC добавляет комментарии; JSON5 добавляет одинарные кавычки, ключи без кавычек, висячие запятые и шестнадцатеричные числа. Неверный выбор ломает API, а не ваш редактор.

Начинающий~4 мин чтенияОбновлено 2026-10-30

JSON или YAML

JSON разделяет скобками, а YAML — отступами: машины получают JSON, люди, редактирующие конфигурацию, получают YAML. Комментарии, якоря и много-документная структура не выживают.

Начинающий~4 мин чтенияОбновлено 2026-10-30

JSONPath или JSON Pointer

JSON Pointer — уникальный адрес, который можно хранить как ключ; JSONPath — язык запросов. Использование не того ломает обновления конфигурации или переизобретает сломанный JSONPath.

Средний~4 мин чтенияОбновлено 2026-10-30

Что JSON Schema реально решает

Schema управляет структурой и типами, а не бизнес-смыслом. Она останавливает отсутствующие поля, неверные типы и перечисления вне диапазона, а правила вроде суммы больше нуля остаются в коде.

Средний~4 мин чтенияОбновлено 2026-10-30

draft-07 или 2020-12

2020-12 актуален и добавляет $defs, prefixItems и unevaluatedProperties, но многие инструменты всё ещё понимают только draft-07. Выбирайте по тому, что поддерживает весь ваш инструментарий.

Продвинутый~4 мин чтенияОбновлено 2026-10-30

Генерация типов TypeScript из Schema

json-schema-to-typescript и quicktype выдают .d.ts одной командой, но это черновик: опциональность, объединения, additionalProperties и даты требуют ручного прохода.

Средний~4 мин чтенияОбновлено 2026-10-30

Ускорение парсинга большого JSON

Оптимизация в неправильном порядке делает бесполезной любую замену библиотеки. Измеряйте сеть, парсинг и отрисовку отдельно, затем сократите число парсингов, уменьшите полезную нагрузку и используйте потоковую обработку.

Средний~5 мин чтенияОбновлено 2026-10-30

Что такое инъекция __proto__

JSON.parse трактует __proto__ как обычный ключ; ущерб происходит в рекурсивном слиянии, которое пишет в Object.prototype, поэтому каждый объект наследует свойства атакующего.

Продвинутый~5 мин чтенияОбновлено 2026-10-30

Как через JSON происходит XSS

JSON сам по себе никогда не исполняется. XSS происходит в момент, когда вы трактуете его как HTML — конкатенация строк на сервере, innerHTML во фронтенде или встраивание JSON прямо в тег скрипта.

Средний~4 мин чтенияОбновлено 2026-10-30

Загружает ли онлайн-форматтер JSON мои данные

Чтобы выяснить это, не нужно читать политику конфиденциальности. Откройте панель сети, попробуйте страницу офлайн и обновите её, чтобы увидеть, сохранилось ли что-то. Две минуты, три проверки, доверие не требуется.

Начинающий~3 мин чтенияОбновлено 2026-10-30

Какой размер JSON-файла может обработать браузер

Фиксированного лимита нет; ограничение — бюджет памяти вашей вкладки. Файл в 20 МБ обычно становится 60–100 МБ после парсинга, а подсвеченный DOM может снова удвоить это.

Начинающий~3 мин чтенияОбновлено 2026-10-30

Какую структуру должен использовать ответ API

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

Средний~4 мин чтенияОбновлено 2026-10-30

В каком формате метки времени в JSON

Эпохи и ISO-строки имеют свои компромиссы, но именно их смешивание реально ломает всё. Используйте ISO 8601 со смещением, храните UTC, отображайте в часовом поясе пользователя.

Начинающий~3 мин чтенияОбновлено 2026-10-30

null или опустить поле

`null` говорит, что поле существует без значения; опускание говорит, что поля не существует. Тела PATCH, слияние конфигурации и предзаполнение форм — вот где разница кусается.

Средний~3 мин чтенияОбновлено 2026-10-30