Валидатор JSON
Твой JSON имеет право хранить валидность.
Вставь JSON. Скажу точно, где он ломается.
Проверяю, пока ты печатаешь · файл можно бросить сюда
Бывает два вида JSON: валидный и тот, который ещё не встретил меня.
Вставь JSON — проверка идёт прямо при вводе. Валидный — покажу статистику. Невалидный — код ошибки, строку, колонку и что с этим делать.
Как это работает
- Вставь JSON — он проверяется, пока ты печатаешь.
- Ошибка? Нажми «Покажи» (F8): курсор встанет ровно на нужный символ.
- Исправь — следующая проверка запустится сама.
Что я проверяю
Строгий JSON по RFC 8259. У каждой проблемы свой код:
trailing_comma- Висячая запятая
[1, 2,] single_quotes- Одинарные кавычки
{'a': 1} smart_quotes- Типографские кавычки
{“a”: 1} unquoted_key- Ключ без кавычек
{a: 1} missing_comma- Нет запятой
[1 2] missing_colon- Нет двоеточия
{"a" 1} comment- Комментарий
// note invalid_literal- Неверный литерал
TrueNoneNaN invalid_number- Неверное число
01.50x1F unclosed_object- Объект не закрыт
{"a": 1 extra_data- Лишнее после JSON
{} {} invalid_escape- Неверный escape
"C:\Users" bom- Метка BOM
control_character- Управляющий символ в строке
Частые вопросы
Почему только одна ошибка за раз?
Первая ошибка часто порождает следующие. Я точно сообщаю о первой; исправишь — проверка сразу запустится снова.
Что именно проверяется?
Строгий JSON по RFC 8259. Запрещены: висячие запятые, одинарные и типографские кавычки, комментарии, ключи без кавычек, NaN, Infinity, undefined, ведущие нули, hex-числа, метка BOM.
Как считаются строки и колонки?
Обе с единицы. Колонка — кодовая точка Unicode, а не байт: таб или простой эмодзи — одна колонка; эмодзи из нескольких кодовых точек, например флаг или эмодзи с оттенком кожи, считается по каждой.
Дубли ключей — это ошибка?
Нет. RFC 8259 их допускает, поэтому документ валиден, и форматирование сохраняет оба ключа. Многие парсеры оставляют только последний, так что лучше их избегать.
Другие инструменты
- Форматирование JSON — 2 или 4 пробела или таб, порядок сохранён.
- Сравнение JSON — что изменилось, с путями JSON Pointer.
- Base64: кодирование в браузере, без отправки.
- JSON в query-строку — массивы, вложенность и пробелы как нужно, и обратно.
- Минификация JSON — одна строка, каждый байт на счету.
- JSON в YAML — тот же порядок, те же числа, безопасные кавычки.