5 самых распространённых ошибок JSON (и как их исправить)

By Команда JSONValidator.dev 2025-07-04

Введение: почему ошибки JSON так часто встречаются

JSON — один из самых популярных форматов данных для API, настройки и обмена информацией. Однако даже мелкие ошибки в JSON могут привести к сбоям приложений, остановке интеграций или сложностям при отладке. В этом материале представлены пять самых распространённых ошибок JSON (с реальными примерами) и способы их устранения.

1. Лишняя запятая (Trailing Comma)

В JSON запятая после последнего элемента в объекте или массиве недопустима. Это частая ошибка при ручном редактировании.

Before:
{
  "name": "Alice",
  "age": 30,
}
After:
{
  "name": "Alice",
  "age": 30
}
Совет: Многие редакторы кода (а также наши онлайн-инструменты JSON) подсвечивают или автоматически исправляют лишние запятые.

2. Одинарные и двойные кавычки

JSON требует использовать только двойные кавычки для всех ключей и строковых значений. Одинарные кавычки недопустимы.

Before:
{
  'name': 'Bob'
}
After:
{
  "name": "Bob"
}
Не используйте одинарные кавычки — даже если ваш язык программирования их допускает! Синтаксис JSON строже, чем в JavaScript или Python.

3. Неэкранированные символы

Некоторые символы (например, перенос строки, табуляция или кавычки внутри строки) должны быть правильно экранированы с помощью обратного слэша.

Before:
{
  "note": "This will break: "hello""
}
After:
{
  "note": "This will work: \"hello\""
}
Если вы видите ошибки типа «unexpected token» или «unterminated string», проверьте, не пропущено ли экранирование в ваших данных.

4. Отсутствие скобок или фигурных скобок

Каждая открывающая скобка или фигурная скобка должна иметь соответствующую закрывающую. Отсутствующая или лишняя скобка всегда вызывает некорректный JSON.

Before:
{
  "name": "Eve",
  "items": [1, 2, 3
}
After:
{
  "name": "Eve",
  "items": [1, 2, 3]
}
Используйте онлайн-валидатор JSON, чтобы быстро обнаружить пропущенные или лишние скобки.

5. Ошибки типов данных

Числа, булевы значения и null не должны быть заключены в кавычки. Например, 42 — это число, а "42" — строка.

  • "true" (строка) не равно true (булево значение)
  • "null" (строка) не равно null (значение)
  • "42" (строка) не равно 42 (число)
Before:
{
  "age": "42",
  "active": "true"
}
After:
{
  "age": 42,
  "active": true
}

Как наш инструмент может помочь

Вставьте ваш JSON в наш валидатор или инструмент исправления, чтобы мгновенно найти и исправить эти ошибки. Наши инструменты укажут точные проблемы и даже предложат автоматические исправления для многих распространённых ошибок.