← Вернуться к блогу

5 распространенных синтаксических ошибок JSON и как их исправить

Освойте синтаксис JSON с помощью этого полного руководства по 5 наиболее распространенным ошибкам, с которыми сталкиваются разработчики. Научитесь выявлять, исправлять и предотвращать проблемы валидации JSON с практическими примерами и профессиональными советами.

Big JSON Team12 мин чтенияbeginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

12 мин чтения

# 5 распространенных синтаксических ошибок JSON и как их исправить

JSON (JavaScript Object Notation) встречается повсюду в современной веб-разработке — от API-ответов до файлов конфигурации. Несмотря на простой синтаксис, разработчики постоянно сталкиваются с раздражающими ошибками JSON, которые ломают приложения.

Это руководство охватывает 5 наиболее распространенных синтаксических ошибок JSON, с которыми вы столкнетесь, как их мгновенно идентифицировать и как исправить навсегда.

---

Почему ошибки JSON так распространены

Строгие синтаксические требования JSON означают, что даже один неправильно размещенный символ может сделать весь документ недействительным. В отличие от JavaScript, JSON:

  • ✅ Требует двойные кавычки для строк (одинарные кавычки недопустимы)
  • ✅ Запрещает завершающие запятые
  • ✅ Требует точного форматирования для ключей и значений
  • Не допускает комментариев

Давайте рассмотрим ошибки, которые чаще всего сбивают разработчиков с толку.

---

Ошибка #1: Завершающие запятые (Тихий убийца)

Проблема

Завершающие запятые — лишние запятые после последнего элемента в массиве или объекте — совершенно допустимы в JavaScript, но полностью запрещены в JSON.

❌ Недействительный JSON

{

"username": "alice123",

"email": "alice@example.com",

"active": true,

}

{

"products": [

{ "id": 1, "name": "Laptop" },

{ "id": 2, "name": "Mouse" },

{ "id": 3, "name": "Keyboard" },

]

}

✅ Действительный JSON

{

"username": "alice123",

"email": "alice@example.com",

"active": true

}

{

"products": [

{ "id": 1, "name": "Laptop" },

{ "id": 2, "name": "Mouse" },

{ "id": 3, "name": "Keyboard" }

]

}

Сообщение об ошибке

Unexpected token } in JSON at position 78

SyntaxError: Trailing comma in JSON

Как исправить

Ручное исправление:
  • Найдите запятые перед закрывающими скобками } или ]
  • Удалите завершающие запятые
  • Проверьте с помощью JSON-линтера
  • Совет по предотвращению: Используйте форматтер JSON, такой как BigJSON, который автоматически обнаруживает и выделяет завершающие запятые. Профессиональный совет для разработчиков:
    // В редакторе кода ищите эти паттерны:
    

    ,\s} // Запятая перед закрывающей скобкой

    ,\s] // Запятая перед закрывающей квадратной скобкой

    ---

    Ошибка #2: Одинарные кавычки вместо двойных

    Проблема

    JavaScript допускает и одинарные, и двойные кавычки для строк, но JSON принимает только двойные кавычки ("). Использование одинарных кавычек — одна из самых распространенных ошибок при преобразовании объектов JavaScript в JSON.

    ❌ Недействительный JSON

    {
    

    'name': 'John Doe',

    'age': 30,

    'city': 'New York'

    }

    ✅ Действительный JSON

    {
    

    "name": "John Doe",

    "age": 30,

    "city": "New York"

    }

    Как исправить

    Быстрое исправление:
    // JavaScript: Замена одинарных кавычек на двойные
    

    const fixedJson = invalidJson.replace(/'/g, '"');

    Лучший подход: Используйте правильную JSON-сериализацию:
    // Вместо ручного написания JSON с кавычками:
    

    const wrong = "{ 'name': 'John' }"; // ❌

    // Используйте JSON.stringify():

    const obj = { name: 'John' };

    const correct = JSON.stringify(obj); // ✅

    ---

    Ошибка #3: Ключи без кавычек

    Проблема

    В JavaScript ключи объектов могут быть без кавычек, если они являются допустимыми идентификаторами. JSON требует, чтобы все ключи были строками в двойных кавычках.

    ❌ Недействительный JSON

    {
    

    name: "Alice",

    age: 28,

    isActive: true

    }

    ✅ Действительный JSON

    {
    

    "name": "Alice",

    "age": 28,

    "isActive": true

    }

    Как исправить

    Пользователи Visual Studio Code:
  • Установите расширение "JSON"
  • Отформатируйте документ (Shift + Alt + F)
  • VS Code выделит ключи без кавычек красным цветом
  • ---

    Ошибка #4: Недопустимые escape-последовательности

    Проблема

    JSON поддерживает ограниченный набор escape-последовательностей. Использование недопустимых или забывчивость экранировать специальные символы вызывает ошибки парсинга.

    ❌ Недействительный JSON

    {
    

    "path": "C:\Users\Alice\Documents",

    "message": "Line 1

    Line 2"

    }

    ✅ Действительный JSON

    {
    

    "path": "C:\\Users\\Alice\\Documents",

    "message": "Line 1\nLine 2"

    }

    Допустимые escape-последовательности в JSON

    | Символ | Escape-последовательность | Описание |

    |-----------|----------------|-------------|

    | " | \" | Двойная кавычка |

    | \ | \\ | Обратная косая черта |

    | / | \/ | Косая черта |

    | Новая строка | \n | Перевод строки |

    | Табуляция | \t | Горизонтальная табуляция |

    | Unicode | \uXXXX | Unicode символ |

    ---

    Ошибка #5: Комментарии в JSON (JSON ≠ JavaScript!)

    Проблема

    Разработчики часто добавляют комментарии в JSON-файлы для документации, но JSON не поддерживает комментарии любого типа. Ни //, ни / /.

    ❌ Недействительный JSON

    {
    

    // Конфигурация пользователя

    "username": "admin",

    "role": "superuser",

    "debugMode": true

    }

    ✅ Действительный JSON (комментарии не разрешены)

    {
    

    "username": "admin",

    "role": "superuser",

    "debugMode": true

    }

    Обходные пути

    Вариант 1: Используйте поле для комментариев
    {
    

    "_comment": "Конфигурация пользователя - обновить перед продакшеном",

    "username": "admin",

    "role": "superuser",

    "debugMode": true

    }

    Вариант 2: Используйте JSON5 или JSONC

    Для файлов конфигурации рассмотрите:

    • JSON5: Поддерживает комментарии, завершающие запятые и многое другое
    • JSONC: JSON с комментариями (используется в VS Code)

    ---

    Бонус: Как поймать ошибки JSON на ранней стадии

    1. Используйте онлайн-валидаторы

    BigJSON Validator - Мгновенная валидация с полезными сообщениями об ошибках

    2. Расширения IDE

    VS Code:
    • Встроенная валидация JSON
    • Установите "Error Lens" для встроенных сообщений об ошибках

    3. Pre-commit хуки

    # .git/hooks/pre-commit
    

    #!/bin/bash

    for file in $(git diff --cached --name-only | grep -E '\.json$'); do

    if ! python -m json.tool "$file" > /dev/null 2>&1; then

    echo "Invalid JSON in $file"

    exit 1

    fi

    done

    ---

    Быстрая справка: Контрольный список обнаружения ошибок

    Перед отправкой или развертыванием JSON-файлов проверьте:

    • [ ] Нет завершающих запятых после последних элементов
    • [ ] Все строки используют двойные кавычки (")
    • [ ] Все ключи объектов в кавычках
    • [ ] Специальные символы правильно экранированы
    • [ ] Нет комментариев нигде
    • [ ] Правильная вложенность скобок
    • [ ] Допустимые типы данных (string, number, boolean, null, object, array)

    ---

    Инструменты для предотвращения ошибок JSON

    1. Онлайн-инструменты BigJSON

    Посетите BigJSON для:

    • Форматтер: Автоматическое исправление проблем форматирования
    • Валидатор: Мгновенная проверка синтаксиса
    • Минификатор: Удаление пробелов для продакшена

    2. Инструменты командной строки

    # Встроенный валидатор Node.js
    

    node -e "JSON.parse(require('fs').readFileSync('file.json'))"

    # Python валидатор

    python -m json.tool file.json

    # jq (JSON процессор)

    jq . file.json

    ---

    Заключение

    5 наиболее распространенных синтаксических ошибок JSON:

  • Завершающие запятые - Удалите запятые перед } и ]
  • Одинарные кавычки - Всегда используйте двойные кавычки (")
  • Ключи без кавычек - Заключайте все ключи объектов в кавычки
  • Недопустимые escape-последовательности - Используйте правильные escape-последовательности
  • Комментарии - Удалите все комментарии (используйте JSON5 при необходимости)
  • Помните: JSON это не JavaScript! Его строгий синтаксис не оставляет места для гибкости.

    Следующие шаги

  • Проверьте свой JSON: Используйте BigJSON Validator
  • Форматируйте автоматически: Используйте BigJSON Formatter
  • Узнайте больше: Прочитайте наше Полное руководство по JSON
  • ---

    Связанные ресурсы

    ---

    Последнее обновление: 15 февраля 2026 г.
    Share:

    Похожие статьи

    Read in English