Нотация объектов JavaScript (JSON, а произносится /ˈdʒeɪsən/; также /ˈdʒeɪˌsɒn/[Примечание 1])-это открытый формат, который использует удобочитаемый текст для передачи объектов данных, состоящих из пар атрибут–значение, а массив данных типов (или любые другие сериализуемые значения). Это очень распространенный формат данных, с широким спектром приложений, таких как замена для XML в системах "Аякс".
JSON-это язык-независимый формат данных. Он был разработан на основе JavaScript, но многие современные языки программирования включают в себя код для создания и разбора данных в формате JSON. Официальный тип интернет-СМИ для JSON-это приложение/JSON. Имена файлов JSON используют расширение .в JSON.
Дуглас Крокфорд заданный изначально формат JSON в начале 2000-х годов. Формат JSON был впервые стандартизирован в 2013 году, как ECMA-404. Последние стандартном формате JSON был опубликован в 2017 году как RFC 8259, и по-прежнему соответствует стандарту ECMA-404. В том же году, JSON также была стандартизирована как ISO/21778 МЭК:2017. В ECMA и ISO описывает только разрешенные синтаксисом, в то время как в RFC рассматриваются некоторые аспекты и аспекты безопасности и совместимости.
Базовые типы данных JSON являются:
- числа: десятичное число, которое может содержать дробную часть, и может использовать экспоненциальную нотацию, но не может содержать цифры, такие как NaN. Формат не делает различия между целыми числами и с плавающей точкой. JavaScript используется двойной точности с плавающей точкой формат числовых значений, но и другие языки реализации JSON может кодировать цифры по-другому.
- строка: последовательность из нуля или более символов в кодировке Юникод. Строки заключаются в двойные кавычки и поддержка обратной косой черты ускользающий синтаксис.
- логическое: любое из значений true или false
- Время: упорядоченный список из нуля или более значений, каждое из которых может быть любого типа. Массивы использование квадратных скобок с запятыми элементы.
- объект: неупорядоченный набор пар имя–значение, где имена (также называемые ключами) являются строками. Объекты предназначены для представления ассоциативных массивов, где каждый ключ является уникальным в пределах объекта. Объекты разделяются с помощью фигурных скобок и использовать запятые для разделения каждой пары, в то время как внутри каждой пары символ двоеточия ':' отделяет ключ или имя от его стоимости.
- нуль: пустое значение, используя слово null
Пробелы разрешены и игнорировал вокруг или между синтаксическими элементами (ценностями и пунктуации, но не в строковое значение). е, используя слово null
Пробелы разрешены и игнорировал вокруг или между синтаксическими элементами (ценностями и пунктуации, но не в строковое значение). Четыре конкретные персонажи считаются пробелы для этой цели: пробел, горизонтальная табуляция, перевод строки и возврат каретки. В частности, метка порядка байтов не должны создаваться соответствующая реализация (хотя она может быть принята для разбора JSON). JSON не предоставляют синтаксис для комментариев.
Ранние версии JSON (например, определенные в RFC 4627) требуется, что действительный текст JSON должен состоять только объект или тип массива, который может содержать другие типы внутри них.