Вот пример, который стоит проверить в консоли: вызов
JSON.stringify для {id: 9007199254740993} вернёт 9007199254740992. Число меняется на единицу, ничего не падает, и это легко пропустить в большом payload.Если добавить
undefined, NaN и Date, картина хуже: свойства с undefined исчезают, дата превращается в строку, а NaN — в null. Стандартный цикл сериализации и парсинга больше не гарантирует, что вы получите назад то же самое.Для веба это значит, что JSON — не бесплатная операция копирования, а точка потери типов и точности. Я бы пересмотрел, где вы полагаетесь на JSON как на источник правды, особенно для больших идентификаторов, дат и полей, которые могут быть null. Подробнее в статье.
