Синтаксис JSON: Правила и примеры
Хотя JSON разработан быть простым, он имеет строгие синтаксические правила, которым нужно следовать точно. Одна неправильно размещенная запятая или неверный символ кавычки могут сделать весь ваш JSON невалидным. Это руководство охватывает все правила синтаксиса, которые вам нужно знать для написания валидного JSON и быстрого выявления ошибок.
Базовые правила
Синтаксис JSON основан на подмножестве JavaScript, но с более строгими правилами, обеспечивающими кросс-платформенную совместимость. Понимание этих правил необходимо для эффективной работы с JSON. Самое важное правило: JSON документы должны использовать двойные кавычки для строк, никогда одинарные. Хотя JavaScript позволяет как 'привет', так и "привет", JSON принимает только "привет". Аналогично, все ключи в JSON объектах должны быть строками, заключенными в двойные кавычки. JavaScript объект {name: "Иван"} является валидным JavaScript, но невалидным JSON; он должен быть записан как {"name": "Иван"}. Пробелы в JSON гибкие. Пробелы, табуляции и переносы строк могут свободно добавляться между токенами для читаемости без влияния на данные. JSON не имеет концепции комментариев. Завершающие запятые строго запрещены. JSON чувствителен к регистру. Булевы значения должны быть в нижнем регистре true и false, а не True и False. Аналогично, null должен быть в нижнем регистре. Кодировка должна быть UTF-8 (предпочтительно), UTF-16 или UTF-32.
Распространенные синтаксические ошибки
Даже опытные разработчики допускают синтаксические ошибки JSON. Ошибка с одинарными кавычками чрезвычайно распространена среди разработчиков, пришедших из JavaScript. Завершающие запятые вызывают бесчисленные ошибки парсинга при редактировании JSON. Неквотированные ключи работают в JavaScript, но не в JSON. JSON не имеет синтаксиса комментариев. Использование значений undefined или NaN приводит к сбою, потому что они не существуют в JSON. Несовпадающие скобки легко создать в сложном JSON. Ошибки последовательностей экранирования возникают, когда специальные символы в строках не экранированы должным образом. Неправильные форматы чисел, такие как ведущие нули или шестнадцатеричная нотация, вызывают тонкие ошибки.
Попробовать инструмент
Форматтер JSON