ByteCompress

JSON Валидатор

Проверьте, является ли ваш JSON синтаксически корректным по RFC 8259. Получите точные сообщения об ошибках с номерами строк и столбцов для быстрого исправления.

0 chars
FreeClient-sideNo signup

Завершающая запятая после последнего элемента в массиве является самой распространенной ошибкой JSON - и она невидима на глаз в минифицированном выводе. Ошибки разбора JSON составляют примерно 15% времени отладки API, согласно анализу опроса разработчиков StackOverflow 2023 года. Этот валидатор ловит эту и каждую другую ошибку нарушения RFC 8259 прямо в вашем браузере. Вставьте ваш JSON, чтобы получить немедленный вердикт: валидный или невалидный, с точной строкой и столбцом любой проблемы. Ничего не загружается. Аккаунт не требуется.

Как проверить JSON

  1. Вставьте или введите ваш JSON в поле ввода.
  2. Валидатор проверяет синтаксис в реальном времени или нажмите Проверить для полного отчета.
  3. Если валидно, зеленый индикатор подтверждает структуру с кратким описанием типа верхнего уровня.
  4. Если невалидно, панель ошибок показывает точную строку, столбец и описание проблемы на простом языке.
  5. Исправьте указанную проблему и повторно проверьте, пока не получите чистый результат.

Что проверяется

Структурные правила

JSON должен начинаться либо с объекта ({}), либо с массива ([]) на верхнем уровне, хотя RFC 8259 также допускает примитивы (строки, числа, булевы значения, null) в качестве значений верхнего уровня. Скобки и квадратные скобки должны быть сбалансированы и правильно вложены. Запятые должны разделять элементы, но не должны появляться после последнего элемента - завершающие запятые являются самой частой ошибкой JSON. Каждый ключ объекта должен быть строкой в двойных кавычках.

Типы значений

JSON определяет шесть типов значений: строки (в двойных кавычках, с определенными экранированными последовательностями), числа (целые и десятичные, без ведущих нулей), булевы значения (true и false, только строчные), null (строчное), объекты и массивы. Специфические для JavaScript значения, такие как undefined, NaN, Infinity и выражения функций, не являются корректным JSON и не пройдут валидацию.

Соответствие RFC 8259

RFC 8259 (опубликован в декабре 2017 года, заменив RFC 4627 и RFC 7159) является текущим стандартом IETF для JSON. Он определяет кодировку UTF-8, запрещает дублирование ключей объектов и определяет точные экранированные последовательности для строковых значений. Этот валидатор применяет строгие правила RFC 8259 для максимальной совместимости со всеми парсерами и языками.

Пример

Неверный ввод (завершающая запятая)

{
  "name": "Alice",
  "roles": ["admin", "editor",]
}

Ошибка валидатора

Ошибка в строке 3, столбце 33: Неожиданный токен ']'
Завершающие запятые не допускаются в массивах JSON (RFC 8259 §5).

Распространенные синтаксические ошибки

  • Завершающая запятая - {"a": 1,} - удалите последнюю запятую перед закрывающей скобкой или квадратной скобкой
  • Строки в одинарных кавычках - {'key': 'value'} - измените на двойные кавычки
  • Необрамленные ключи - {key: "value"} - оберните ключ в двойные кавычки
  • Комментарии JavaScript - // comment или /* comment */ - JSON не имеет синтаксиса комментариев; удалите их
  • Неправильный регистр булевых значений/null - True, False, NULL недопустимы; используйте true, false, null

Разница между валидацией и форматированием

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

Как только JSON проходит валидацию, JSON Форматировщик отступает его для удобочитаемости, а JSON Минификатор сжимает его для производственного использования. Для JSON, встроенного в URL, декодируйте с помощью URL Декодера перед валидацией.

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

В чем разница между валидацией и форматированием JSON?

Валидация проверяет, является ли ваш JSON синтаксически корректным по RFC 8259. Форматирование добавляет пробелы для удобочитаемости и не проверяет корректность. Вы можете попытаться отформатировать некорректный JSON, но форматировщик также потерпит неудачу, так как сначала должен разобрать JSON. Проверьте перед форматированием.

Почему JavaScript принимает мой JSON, а валидатор его отклоняет?

Некоторые среды JavaScript принимают расслабленные надмножества JSON, такие как JSON5 или HJSON, которые допускают комментарии, строки в одинарных кавычках и завершающие запятые. Этот валидатор проверяет строгое соответствие RFC 8259, чтобы гарантировать, что JSON работает во всех языках и средах выполнения. Если ваш случай использования только JavaScript, рассмотрите JSON5.parse() с библиотекой json5.

Могу ли я проверять документы JSON Schema с помощью этого инструмента?

Этот инструмент проверяет только синтаксис JSON, а не семантику JSON Schema. Документ JSON Schema сам по себе является корректным JSON, поэтому проверка синтаксиса работает. Чтобы проверить, соответствует ли объект данных определению JSON Schema, вам нужен специальный валидатор JSON Schema, такой как ajv.

Являются ли мои данные конфиденциальными, когда я проверяю их здесь?

Совершенно верно. Валидация выполняется на стороне клиента в вашем браузере с использованием встроенной функции JSON.parse. Никакие данные не отправляются на сервер, не регистрируются и не хранятся. Вы можете безопасно проверять полезные нагрузки, содержащие учетные данные API, личную информацию или внутренние бизнес-данные.

Каковы самые распространенные ошибки валидации JSON?

По частоте: (1) завершающие запятые после последнего элемента - [1, 2, 3,]; (2) строки в одинарных кавычках вместо двойных; (3) неэкранированные обратные слэши или управляющие символы внутри строк; (4) комментарии JavaScript; (5) заглавные True/False/Null вместо true/false/null.