Язык: Русский

tools / json

json/

Форматирование, сжатие, проверка и экранирование JSON, сортировка ключей; проверка выполняется прямо во время ввода.

Ввод

Результат

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

Что делать, если проверка пишет «Unexpected token» или «Недопустимый JSON»?

Чаще всего текст записан как литерал JavaScript или Python, а не как стандартный JSON. Типичные причины: одинарные кавычки, ключи без двойных кавычек, лишняя запятая после последнего элемента, комментарии // или /* */, NaN или undefined (а также True и None из Python) и «умные» кавычки, скопированные из мессенджера. Указанная позиция — это место, где остановился парсер; настоящая причина может быть чуть раньше.

Как читать строку и столбец в сообщении об ошибке и почему дальше текст на английском?

Строки и столбцы нумеруются с 1. Позиция берется из ошибки браузера; если ее там нет (например, в Safari), инструмент сам просматривает текст и находит первый неверный символ. Английский текст после «·» — это оригинальное сообщение JSON.parse из браузера: в разных браузерах оно звучит по-разному, и здесь оно не переводится.

Как превратить \u4e2d\u6587 в JSON в читаемый текст?

Просто нажмите «Форматировать» или «Сжать». Инструмент разбирает JSON и записывает его обратно, а последовательности \uXXXX внутри строк превращаются в настоящие символы. Если весь ввод — экранированная строка (в кавычках и полная \"), сначала выберите «Деэкранировать». Обратное преобразование — запись не-ASCII текста в виде \u — здесь не поддерживается: «Экранировать» обрабатывает только кавычки, обратные косые черты, переводы строк и подобные символы.

Чем отличаются «Экранировать» и «Деэкранировать» и как восстановить строку из API, полную \"?

«Экранировать» превращает текст в вид, который можно вложить в строку (перед кавычками ставится обратная косая черта, перевод строки становится \n), результат выводится без окружающих кавычек; «Деэкранировать» делает обратное. Если API вернул содержимое, полное \", выберите «Деэкранировать»: подойдет и с внешними кавычками, и без них. Затем нажмите «⇄ Результат как входные данные» — инструмент сам переключится на «Форматировать».

После форматирования у длинных чисел (например, ID типа Snowflake) изменились последние цифры. Что делать?

Целые числа больше 2^53 (9007199254740991) JavaScript не может представить точно, и JSON.parse теряет точность уже при чтении: последние цифры часто превращаются в нули. При форматировании или сжатии страница показывает предупреждение с перечнем до 5 позиций. Чтобы сохранить такие значения, пусть источник данных выдает эти ID строками (в двойных кавычках).

После форматирования 1.0 стало 1, а повторяющийся ключ исчез. Почему?

Форматирование и сжатие сначала разбирают JSON, а потом записывают его заново, поэтому числа переписываются по правилам JavaScript: 1.0 становится 1, 1E2 — 100, 0.10 — 0.1, а -0 — 0. Сами значения при этом не меняются. Если в объекте один и тот же ключ встречается дважды, сохраняется только последний, и предупреждения нет.

Как работает «Сортировать ключи» и меняются ли массивы?

Ключи на всех уровнях сортируются по коду символа: заглавные буквы идут перед строчными, а буквы других алфавитов и иероглифы — по коду символа, а не по алфавитному порядку. Порядок элементов массивов не меняется. Исключение — ключи из одних цифр (например, "2" и "10"): JavaScript всегда ставит их первыми в числовом порядке, поэтому они оказываются в начале, даже если «Сортировать ключи» выключено.

Какого размера может быть JSON и отправляются ли данные на сервер?

Фиксированного ограничения по размеру нет. Если ввод превышает 1 миллион символов, обработка запускается примерно через 0,6 секунды после окончания ввода, а очень большой текст ограничен в основном памятью браузера. Вся обработка выполняется в браузере: страница не отправляет ваше содержимое на сервер и не сохраняет введенное.