~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ E2F26A31C8238CBD761FD5ED37BB80B0__1718352240 ✰
Заголовок документа оригинал.:
✰ JSON - Wikipedia ✰
Заголовок документа перевод.:
✰ JSON — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/JSON ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/e2/b0/e2f26a31c8238cbd761fd5ed37bb80b0.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/e2/b0/e2f26a31c8238cbd761fd5ed37bb80b0__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 05:23:01 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 14 June 2024, at 11:04 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

JSON — Википедия Jump to content

JSON

Из Википедии, бесплатной энциклопедии

Обозначение объектов JavaScript
Расширение имени файла
.json
Тип интернет-СМИ
приложение/json
Введите код ТЕКСТ
Единый идентификатор типа (UTI) public.json
Тип формата Обмен данными
Расширено с JavaScript
Стандартный СТД 90 ( RFC   8259 ), ECMA-404 , ISO/IEC 21778:2017.
Открытый формат ? Да
Веб-сайт JSON .org

JSON ( JavaScript Object Notation , произносится / ˈ s ən / или / ˈ ˌ s ɒ n / ) — это открытый стандартный формат файлов и обмена данными формат , который использует удобочитаемый текст для хранения и передачи объектов данных, состоящих из атрибутов. –пары значений и массивы (или другие сериализуемые значения). Это широко используемый формат данных, который широко используется при электронном обмене данными , включая веб-приложения с серверами .

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

Дуглас Крокфорд первоначально определил формат JSON в начале 2000-х годов. [1] Он и Чип Морнингстар отправили первое сообщение JSON в апреле 2001 года.

Именование и произношение [ править ]

2017 года Международный стандарт (ECMA-404 и ISO/IEC 21778:2017) определяет, что «JSON» «произносится / ˈ . s ə n / , как в « Джейсон и аргонавты » . [2] [3] Первое (2013 г.) издание ECMA-404 не касалось произношения. [4] В «Справочнике системного администрирования UNIX и Linux» говорится: « Дуглас Крокфорд , который назвал и продвигал формат JSON, говорит, что он произносится как имя Джейсон. Но почему-то «JAY-sawn» [а] кажется, стало более распространенным явлением в техническом сообществе». [5] В 2011 году Крокфорд сказал: «Существует много споров о том, как это произносить, но меня это совершенно не волнует». [1]

Стандарты [ править ]

После RFC   4627 был доступен в качестве «информационной» спецификации с 2006 года, JSON был впервые стандартизирован в 2013 году как ECMA -404. [4] RFC   8259 , опубликованный в 2017 году, является текущей версией интернет -стандарта STD 90 и остается совместимым с ECMA-404. [6] В том же году JSON был стандартизирован как ISO / IEC 21778:2017. [2] Стандарты ECMA ISO и описывают только разрешенный синтаксис, тогда как / IEC RFC охватывает некоторые соображения безопасности и совместимости. [7]

История [ править ]

Дуглас Крокфорд в здании Yahoo (2007)

JSON вырос из потребности в протоколе сеансовой связи между сервером и браузером в реальном времени без использования плагинов браузера, таких как Flash или Java- апплеты, — доминирующих методов, использовавшихся в начале 2000-х годов. [8]

Крокфорд первым определил и популяризировал формат JSON. [1] Эта аббревиатура возникла в компании State Software, соучредителями которой были Крокфорд и другие в марте 2001 года. Соучредители согласились создать систему, которая использовала бы стандартные возможности браузера и предоставляла веб-разработчикам уровень абстракции для создания веб-приложений с отслеживанием состояния, которые имели постоянное дуплексное соединение с веб-сервер, удерживая открытыми два соединения протокола передачи гипертекста (HTTP) и перезапуская их до истечения стандартного времени ожидания браузера, если дальнейший обмен данными не осуществлялся. Соучредители провели круглый стол и проголосовали за то, называть ли формат данных JSML (язык разметки JavaScript) или JSON (нотация объектов JavaScript), а также под каким типом лицензии сделать его доступным. JSON.org [9] веб-сайт был запущен в 2001 году. В декабре 2005 года Yahoo! начала предлагать некоторые из своих веб-сервисов в формате JSON. [10]

Предшественник библиотек JSON использовался в детском игровом проекте по торговле цифровыми активами под названием Cartoon Orbit на Communities.com. [ нужна цитата ] (все соучредители штата ранее работали в этой компании) для Cartoon Network [ нужна цитата ] , которая использовала плагин на стороне браузера с собственным форматом сообщений для управления элементами DHTML (эта система также принадлежит 3DO [ нужна цитата ] ). Обнаружив первые возможности Ajax , digiGroups, Noosh и другие использовали фреймы для передачи информации в поле зрения браузера пользователя без обновления визуального контекста веб-приложения, реализуя многофункциональные веб-приложения в реальном времени, используя только стандартные HTTP, HTML и JavaScript. возможности Netscape 4.0.5+ и Internet Explorer 5+. Затем Крокфорд обнаружил, что JavaScript можно использовать в качестве объектно-ориентированного формата обмена сообщениями для такой системы. Система была продана Sun Microsystems , Amazon.com и EDS .

JSON был основан на подмножестве языка сценариев JavaScript (в частности, Standard ECMA -262, 3-е издание — декабрь 1999 г.). [11] ) и обычно используется с JavaScript, но это независимый от языка формат данных. Код для анализа и генерации данных JSON доступен на многих языках программирования . На веб-сайте JSON библиотеки JSON перечислены по языкам.

В октябре 2013 года Ecma International опубликовала первое издание стандарта JSON ECMA-404. [4] В том же году, В RFC   7158 в качестве ссылки использовался ECMA-404. В 2014, RFC   7159 стал основным справочником по использованию JSON в Интернете, заменив RFC   4627 и RFC   7158 (но с сохранением ECMA-262 и ECMA-404 в качестве основных ссылок). В ноябре 2017 года ISO/IEC JTC 1/SC 22 опубликовал ISO/IEC 21778:2017. [2] как международный стандарт. 13 декабря 2017 г. Рабочая группа по проектированию Интернета упразднила RFC   7159 , когда он был опубликован RFC   8259 — текущая версия интернет -стандарта STD 90. [12] [13]

Крокфорд добавил в лицензию JSON пункт, гласящий: «Программное обеспечение должно использоваться во благо, а не во зло», чтобы открыть исходный код библиотек JSON, высмеивая при этом корпоративных юристов и тех, кто чрезмерно педантичен. С другой стороны, этот пункт привел к проблемам совместимости лицензии JSON с другими лицензиями с открытым исходным кодом, поскольку программное обеспечение с открытым исходным кодом и свободное программное обеспечение обычно не предполагают никаких ограничений по цели использования. [14]

Синтаксис [ править ]

В следующем примере показано возможное представление JSON, описывающее человека.

{ 
   "first_name"  :   "Джон"  , 
   "last_name"  :   "Смит"  , 
   "is_alive"  :   true  , 
   "age"  :   27  , 
   "address"  :   { 
     "street_address"  :   "21 2nd Street"  , 
     "city"  :   "Новый Йорк"  , 
     "штат"  :   "Нью-Йорк"  , 
     "postal_code"  :   "10021-3100" 
   }, 
   "phone_numbers"  :   [ 
     { 
       "type"  :   "home"  , 
       "number"  :   "212 555-1234" 
     }, 
     { 
       " тип"  :   "офис"  , 
       "номер"  :   "646 555-4567" 
     } 
   ], 
   "дети"  :   [ 
     "Кэтрин"  , 
     "Томас"  , 
     "Тревор" 
   ], 
   "супруга"  :   null 
 } 

Кодировка символов [ править ]

Хотя Крокфорд изначально утверждал, что JSON — это строгое подмножество JavaScript и ECMAScript , [15] его спецификация фактически допускает действительные документы JSON, которые не являются допустимыми документами JavaScript; JSON позволяет использовать терминаторы строк в Юникоде. U+2028 РАЗДЕЛИТЕЛЬ СТРОК и U+2029 Разделитель абзацев будет отображаться в строках в кавычках без экранирования, а в ECMAScript 2018 и более ранних версиях — нет. [16] [17] Это следствие того, что JSON запрещает использование только «управляющих символов». Для максимальной переносимости эти символы должны быть экранированы обратной косой чертой.

Обмен JSON в открытой экосистеме должен быть закодирован в UTF-8 . [6] Кодировка поддерживает полный набор символов Юникода, включая символы за пределами базовой многоязычной плоскости (от U+0000 до U+FFFF). Однако, если они экранированы, эти символы должны быть записаны с использованием суррогатных пар UTF-16 . Например, чтобы включить Emoji символ U+1F610 😐 НЕЙТРАЛЬНОЕ ЛИЦО в JSON:

{   "face"  :   "😐"   } 
 // или 
 {   "face"  :   "\uD83D\uDE10"   } 

JSON стал строгим подмножеством ECMAScript с версии языка 2019 года. [17] [18]

Типы данных [ править ]

Основные типы данных JSON:

  • Число: десятичное число со знаком, которое может содержать дробную часть и может использовать экспоненциальную нотацию E , но не может включать нечисла, такие как NaN . Формат не делает различий между целыми числами и числами с плавающей запятой. JavaScript использует IEEE-754 формат с плавающей запятой двойной точности для всех своих числовых значений (позже также поддерживает BigInt [19] ), но другие языки, реализующие JSON, могут кодировать числа по-другому.
  • Строка : последовательность из нуля или более символов Юникода . Строки разделяются двойными кавычками и поддерживают синтаксис экранирования обратной косой чертой .
  • Логическое значение : любое из значений true или false
  • Массив : упорядоченный список из нуля или более элементов, каждый из которых может быть любого типа. В массивах используются обозначения квадратных скобок с элементами, разделенными запятыми.
  • Объект : коллекция пар имя-значение , где имена (также называемые ключами) представляют собой строки. Текущий стандарт ECMA гласит: «Синтаксис JSON не накладывает никаких ограничений на строки, используемые в качестве имен, не требует уникальности строк имен и не придает никакого значения порядку пар имя/значение». [20] Объекты заключаются в фигурные скобки , а для разделения каждой пары используются запятые, а внутри каждой пары символ двоеточия отделяет ключ или имя от его значения.
  • null: пустое значение, используя слово null

Пробелы разрешены и игнорируются вокруг или между синтаксическими элементами (значениями и знаками препинания, но не внутри строкового значения). Для этой цели четыре конкретных символа считаются пробелами: пробел , горизонтальная табуляция , перевод строки и возврат каретки . В частности, знак порядка байтов не должен генерироваться соответствующей реализацией (хотя он может быть принят при анализе JSON). JSON не предоставляет синтаксис для комментариев . [21]

Ранние версии JSON (например, указанные в RFC   4627 ) требовал, чтобы действительный текст JSON состоял только из объекта или типа массива, который мог содержать внутри себя другие типы. Это ограничение было снято в RFC   7158 , где текст JSON был переопределен как любое сериализованное значение.

Числа в JSON не зависят от их представления в языках программирования. Хотя это позволяет числа произвольной точности сериализовать , это может привести к проблемам с переносимостью. Например, поскольку между целочисленными значениями и значениями с плавающей запятой не проводится различие, некоторые реализации могут обрабатывать 42, 42.0, и 4.2E+1столько же, а другие могут и не быть. Стандарт JSON не предъявляет требований к деталям реализации, таким как переполнение , нули потеря точности, округление или со знаком , но он рекомендует ожидать не более точности, чем IEEE 754binary64 для «хорошей совместимости». Нет никакой внутренней потери точности при сериализации двоичного представления числа с плавающей запятой на машинном уровне (например,binary64) в удобочитаемое десятичное представление (например, числа в JSON) и обратно, поскольку существуют опубликованные алгоритмы, позволяющие сделать это точно и оптимально. . [22]

Комментарии были намеренно исключены из JSON. В 2012 году Дуглас Крокфорд так описал свое дизайнерское решение: «Я удалил комментарии из JSON, потому что видел, что люди использовали их для хранения директив синтаксического анализа, а такая практика разрушила бы совместимость». [21]

JSON запрещает «конечные запятые» — запятую после последнего значения внутри структуры данных. [23] Завершающие запятые — это обычная особенность производных JSON , которая упрощает использование. [24]

Совместимость [ править ]

RFC   8259 описывает определенные аспекты синтаксиса JSON, которые, хотя и являются законными согласно спецификациям, могут вызвать проблемы совместимости.

  • Некоторые реализации JSON принимают только тексты JSON, представляющие объект или массив. Для обеспечения совместимости приложения, обменивающиеся JSON, должны передавать сообщения, которые являются объектами или массивами.
  • Спецификации допускают объекты JSON, содержащие несколько элементов с одинаковым именем. Поведение реализаций, обрабатывающих объекты с повторяющимися именами, непредсказуемо. Для обеспечения совместимости приложениям следует избегать дублирования имен при передаче объектов JSON.
  • В спецификациях конкретно сказано, что порядок членов в объектах JSON не имеет значения. Для обеспечения совместимости приложениям следует избегать присвоения значения порядку членов, даже если программное обеспечение синтаксического анализа делает этот порядок видимым.
  • Хотя спецификации не накладывают ограничений на величину или точность числовых литералов JSON, широко используемая реализация JavaScript хранит их как величины IEEE754 «binary64». В целях совместимости приложениям следует избегать передачи чисел, которые невозможно представить таким образом, например 1E400 или 3.141592653589793238462643383279.
  • Хотя спецификации не ограничивают кодировку символов Юникода в тексте JSON, подавляющее большинство реализаций предполагают UTF-8 кодировку ; для обеспечения совместимости приложения всегда должны кодировать сообщения JSON только в UTF-8.
  • Спецификации не запрещают передачу последовательностей байтов, которые неправильно представляют символы Юникода. Для обеспечения совместимости приложения должны передавать сообщения, не содержащие таких последовательностей байтов.
  • Спецификация не ограничивает способы сравнения строк Юникода в приложениях. Для обеспечения совместимости приложения всегда должны выполнять такие сравнения код за блоком.

В 2015 году IETF опубликовал RFC   7493 , описывающий «Формат сообщения I-JSON», ограниченный профиль JSON, который ограничивает синтаксис и обработку JSON, чтобы избежать, насколько это возможно, этих проблем совместимости.

Семантика [ править ]

Хотя JSON обеспечивает синтаксическую структуру для обмена данными, однозначный обмен данными также требует соглашения между производителем и потребителем о семантике конкретного использования синтаксиса JSON. [25] Одним из примеров необходимости такого соглашения является сериализация типов данных, не являющихся частью стандарта JSON, например дат и регулярных выражений .

Метаданные и схема [ править ]

Официальный тип MIME для текста JSON: application/json, [26] и большинство современных реализаций приняли это. Устаревшие типы MIME включают в себя text/json, text/x-json, и text/javascript. [27]

Схема JSON определяет формат на основе JSON для определения структуры данных JSON для проверки, документирования и управления взаимодействием. Он предоставляет контракт для данных JSON, необходимых данному приложению, и способы изменения этих данных. [28] Схема JSON основана на концепциях XML-схемы (XSD), но основана на JSON. Как и в XSD, одни и те же инструменты сериализации/десериализации могут использоваться как для схемы, так и для данных, и они самоописываются. Он указан в интернет-проекте IETF, причем последней версией по состоянию на 2024 год является «Проект 2020-12». [29] Для разных языков программирования доступно несколько валидаторов. [30] каждый с разным уровнем соответствия. Стандартное расширение имени файла — .json. [31]

Стандарт JSON не поддерживает ссылки на объекты , но существует проект стандарта IETF для ссылок на объекты на основе JSON. [32]

Использует [ править ]

JSON-RPC — это протокол удаленного вызова процедур (RPC), построенный на JSON в качестве замены XML-RPC или SOAP . Это простой протокол, определяющий лишь несколько типов данных и команд. JSON-RPC позволяет системе отправлять уведомления (информацию на сервер, не требующую ответа) и несколько вызовов на сервер, на которые можно отвечать вне очереди.

Асинхронный JavaScript и JSON (или AJAJ) относятся к той же динамических веб-страниц методологии , что и Ajax , но вместо XML форматом данных является JSON. AJAJ — это метод веб-разработки, который обеспечивает возможность веб-страницы запрашивать новые данные после ее загрузки в веб-браузер . Обычно он отображает новые данные с сервера в ответ на действия пользователя на этой веб-странице. Например, то, что пользователь вводит в поле поиска , код на стороне клиента затем отправляет на сервер, который немедленно отвечает раскрывающимся списком соответствующих элементов базы данных .

JSON используется для особых случаев в качестве языка конфигурации . Однако он не поддерживает комментарии . В 2012 году Дуглас Крокфорд, создатель JSON, сказал следующее о комментариях в JSON, когда они используются в качестве языка конфигурации: «Я знаю, что отсутствие комментариев расстраивает некоторых людей, но это не должно. Предположим, вы используете JSON, чтобы сохранить файлы конфигурации, которые вы хотите аннотировать. Вставьте все нужные комментарии. Затем передайте их через JSMin. [33] прежде чем передать его вашему парсеру JSON». [21]

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

В некоторые реляционные базы данных, такие как PostgreSQL и MySQL, добавлена ​​поддержка собственных типов данных JSON. Это позволяет разработчикам хранить данные JSON непосредственно в реляционной базе данных без необходимости конвертировать их в другой формат данных.

Безопасность [ править ]

JSON, являющийся подмножеством JavaScript, может привести к неправильному представлению о том, что передавать тексты JSON в JavaScript безопасно. eval()функция. Это небезопасно из-за некоторых допустимых текстов JSON, особенно тех, которые содержат U+2028 РАЗДЕЛИТЕЛЬ СТРОК или U+2029 PARAGRAPH SEPARATOR не является действительным кодом JavaScript до тех пор, пока спецификации JavaScript не будут обновлены в 2019 году, поэтому старые движки могут его не поддерживать. [34] Чтобы избежать многих ловушек, вызванных выполнением произвольного кода из Интернета, появилась новая функция: JSON.parse(), впервые был добавлен в пятое издание ECMAScript, [35] который по состоянию на 2017 год поддерживается всеми основными браузерами. Для неподдерживаемых браузеров API-совместимая библиотека JavaScript предоставлена ​​Дугласом Крокфордом . [36] Кроме того, предложение TC39 «Подключить JSON» сделало ECMAScript строгим расширенным набором JSON начиная с версии языка 2019 года. [17] [18] Различные реализации парсера JSON пострадали от атак типа «отказ в обслуживании» и уязвимостей массового присвоения . [37] [38]

Альтернативы [ править ]

JSON пропагандируется как альтернатива XML с низкими издержками, поскольку оба этих формата широко поддерживают создание, чтение и декодирование в реальных ситуациях, где они обычно используются. [39] Помимо XML, примеры могут включать CSV и расширенные наборы JSON. Google Protocol Buffers может выполнить эту роль, хотя это не язык обмена данными. CBOR имеет расширенный набор типов данных JSON, но он не является текстовым.

XML [ править ]

XML использовался для описания структурированных данных и сериализации объектов. Существуют различные протоколы на основе XML для представления тех же структур данных, что и JSON, для тех же целей обмена данными. Данные могут быть закодированы в XML несколькими способами. Самая обширная форма с использованием пар тегов приводит к гораздо большему (по количеству символов) представлению, чем JSON, но если данные хранятся в атрибутах и ​​форме «короткого тега», где закрывающий тег заменяется на />, представление часто имеет тот же размер, что и JSON, или немного больше. Однако атрибут XML может иметь только одно значение, и каждый атрибут может появляться не более одного раза в каждом элементе.

XML отделяет «данные» от «метаданных» (посредством использования элементов и атрибутов), тогда как JSON не имеет такой концепции.

Еще одним ключевым отличием является адресация ценностей. В JSON есть объекты с простым сопоставлением «ключ» и «значение», тогда как в XML адресация происходит на «узлах», каждый из которых получает уникальный идентификатор через процессор XML. Кроме того, стандарт XML определяет общий атрибут xml:id, который может использоваться пользователем для явной установки идентификатора.

Имена тегов XML не могут содержать ни одного символа. !"#$%&'()*+,/;<=>?@[\]^`{|}~, ни пробела и не может начинаться с -, .или цифровую цифру, тогда как ключи JSON могут (даже если кавычки и обратную косую черту необходимо экранировать). [40]

Значения XML представляют собой строки символов без встроенной безопасности типов . XML имеет концепцию схемы , которая допускает строгую типизацию, определяемые пользователем типы, предопределенные теги и формальную структуру, позволяющую формальную проверку потока XML. JSON имеет несколько встроенных типов и аналогичную концепцию схемы в JSON Schema .

XML поддерживает комментарии, а JSON — нет. [41] [21]

Суперсеты [ править ]

Поддержка комментариев и других функций была признана полезной, что привело к нескольких нестандартных расширений созданию JSON. Среди них HJSON, [42] HOCON и JSON5 (который, несмотря на свое название, не является пятой версией JSON). [43] [44]

ЯМЛ [ править ]

YAML версии 1.2 представляет собой расширенный набор JSON; предыдущие версии не были строго совместимы. Например, экранирование косой черты / с обратной косой чертой \ допустимо в JSON, но недопустимо в YAML. [45] YAML поддерживает комментарии, а JSON — нет. [45] [43] [21]

КСОН [ править ]

CSON Нотация объекта CoffeeScript ») использует значительные отступы , ключи без кавычек и предполагает объявление внешнего объекта. Он использовался для настройки GitHub на текстового редактора Atom . [46] [47] [48]

Существует также несвязанный проект под названием CSON («Нотация объектов рукописного сценария»), который синтаксически более похож на JSON. [49]

ХОКОН [ править ]

HOCON («нотация объекта конфигурации, оптимизированная для человека») — это формат удобочитаемых данных, расширенный набор JSON. [50] Использование HOCON:

  • В основном он используется в сочетании с платформой Play , [51] и разработан Lightbend .
  • Он также поддерживается в качестве формата конфигурации для проектов .NET через Akka.NET. [52] [53] и Марионетка . [54]
  • Трансляция TIBCO: [55] HOCON — это основной формат файла конфигурации для потоковой передачи TIBCO. [56] семейство продуктов (StreamBase, LiveView и Artifact Management Server), начиная с TIBCO Streaming Release 10. [57]
  • Это также основной формат файла конфигурации для нескольких подсистем Exabeam Advanced Analytics. [58]
  • Jitsi использует его как «новую» систему конфигурации, а .properties -Files как запасной вариант. [59] [60]

JSON5 [ править ]

JSON5 («Формат обмена данными JSON5») — это расширение синтаксиса JSON, которое, как и JSON, также является допустимым синтаксисом JavaScript. Спецификация была начата в 2012 году и завершена в 2018 году версией 1.0.0. [61] Основные отличия от синтаксиса JSON:

  • Необязательные завершающие запятые
  • Ключи объекта без кавычек
  • Строки с одинарными кавычками и многострочные строки
  • Дополнительные числовые форматы
  • Комментарии

Синтаксис JSON5 поддерживается в некоторых программах как расширение синтаксиса JSON, например, в SQLite . [62]

JSONC[editJSONC

JSONC (JSON с комментариями) — это подмножество JSON5, используемое в коде Microsoft Visual Studio : [63]

  • поддерживает однострочные комментарии ( //) и блокировать комментарии ( /* */)
  • принимает конечные запятые, но они не рекомендуются, и редактор выводит предупреждение

Производные [ править ]

Несколько форматов сериализации были созданы на основе спецификации JSON. Примеры включают в себя

  • GeoJSON — формат, предназначенный для представления простых географических объектов. [64] [65]

См. также [ править ]

Примечания [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б с «Дуглас Крокфорд: Сага о JSON» . YouTube. 28 августа 2011 года . Проверено 21 февраля 2022 г. Расшифровка: видеозаписи стенограмм на Wayback Machine (архивировано 30 октября 2019 г.)
  2. ^ Перейти обратно: а б с «ИСО/МЭК 21778:2017» . ИСО . Проверено 29 июля 2019 г.
  3. ^ «ECMA-404: Синтаксис обмена данными JSON» (2-е изд.). Экма Интернешнл . Декабрь 2017. с. iii, сноска. Архивировано (PDF) из оригинала 27 октября 2019 г. Проверено 29 апреля 2024 г.
  4. ^ Перейти обратно: а б с «ECMA-404: формат обмена данными JSON» (1-е изд.). Экма Интернешнл . Октябрь 2013 г. Архивировано (PDF) из оригинала 1 ноября 2013 г. . Проверено 20 ноября 2023 г.
  5. ^ Немет, Эви; Снайдер, Гарт; Хейн, Трент Р.; Уэйли, Бен; Маккин, Дэн (2017). «19: Веб-хостинг» . Справочник по системному администрированию UNIX и Linux (5-е изд.). Аддисон-Уэсли Профессионал. ISBN  9780134278292 . Проверено 29 октября 2019 г.
  6. ^ Перейти обратно: а б Брей, Т. (декабрь 2017 г.). Брей, Т. (ред.). «Формат обмена данными нотации объектов JavaScript (JSON)» . IETF. дои : 10.17487/RFC8259 . S2CID   263868313 . Проверено 16 февраля 2018 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  7. ^ Брэй, Тим. «JSON Redux AKA RFC7159» . Непрерывный . Проверено 16 марта 2014 г.
  8. ^ «Неофициальная история Java» . Эду4Java . 26 мая 2014 года. Архивировано из оригинала 26 мая 2014 года . Проверено 30 августа 2019 г. В 1996 году Macromedia запускает технологию Flash, которая занимает место, оставленное Java и ActiveX, и становится фактическим стандартом анимации на стороне клиента.
  9. ^ "JSON" . json.org .
  10. ^ Яху!. «Использование JSON с веб-службами Yahoo!» . Архивировано из оригинала 11 октября 2007 года . Проверено 3 июля 2009 г.
  11. ^ Крокфорд, Дуглас (28 мая 2009 г.). «Знакомство с JSON» . json.org . Проверено 3 июля 2009 г. Он основан на подмножестве языка программирования JavaScript, стандарт ECMA-262, 3-е издание — декабрь 1999 г.
  12. ^ Брей, Тим (декабрь 2017 г.). «История проекта-ietf-jsonbis-rfc7159bis-04» . Трекер данных IETF . Рабочая группа по интернет-инжинирингу . Проверено 24 октября 2019 г. 13 декабря 2017 г. [...] RFC опубликован.
  13. ^ Брей, Тим (13 декабря 2017 г.). «RFC 8259 — формат обмена данными в нотации объектов JavaScript (JSON)» . Трекер данных IETF . Рабочая группа по интернет-инжинирингу . Проверено 24 октября 2019 г. Тип: RFC — Интернет-стандарт (декабрь 2017 г.; исправления); Устаревший RFC 7159; Также известен как STD 90.
  14. ^ « Apache и лицензия JSON » на LWN.net Джейка Эджа (30 ноября 2016 г.).
  15. ^ Дуглас Крокфорд (10 июля 2016 г.). «JSON в JavaScript» . Архивировано из оригинала 10 июля 2016 года . Проверено 13 августа 2016 г. JSON — это подмножество объектной литеральной записи JavaScript.
  16. ^ Холм, Магнус (15 мая 2011 г.). «JSON: подмножество JavaScript, которого нет» . Вечный репозиторий. Архивировано из оригинала 13 мая 2012 года . Проверено 23 сентября 2016 г.
  17. ^ Перейти обратно: а б с «Включить JSON: предложение сделать весь текст JSON действительным ECMA-262» . Экма TC39. 23 августа 2019 года . Проверено 27 августа 2019 г.
  18. ^ Перейти обратно: а б «Переход к этапу 4 — tc39/proposal-json-superset» . Гитхаб . 22 мая 2018 г.
  19. ^ «BigInt — словарь веб-документов MDN» . Мозилла . Проверено 18 октября 2020 г.
  20. ^ ECMA-404, 2-е изд. , п. 3: «Синтаксис JSON не накладывает никаких ограничений на строки, используемые в качестве имен, не требует уникальности строк имен и не придает никакого значения порядку пар имя/значение».
  21. ^ Перейти обратно: а б с д Это Крокфорд, Дуглас (30 апреля 2012 г.). «Комментарии в формате JSON» . Архивировано из оригинала 4 июля 2015 года . Проверено 30 августа 2019 г. Я удалил комментарии из JSON, потому что видел, что люди использовали их для хранения директив синтаксического анализа, а такая практика разрушила бы совместимость. Я знаю, что отсутствие комментариев расстраивает некоторых людей, но это не должно. Предположим, вы используете JSON для хранения файлов конфигурации, которые хотите аннотировать. Вставьте все комментарии, которые вам нравятся. Затем пропустите его через JSMin , прежде чем передать его парсеру JSON.
  22. ^ Андриско, Марк; Джала, Ранджит; Лернер, Сорин. «Печать чисел с плавающей запятой — всегда правильный метод» (PDF) . Проверено 27 июля 2019 г.
  23. ^ «Завершающие запятые — JavaScript | MDN» . http://developer.mozilla.org . 12 сентября 2023 г. . Проверено 16 декабря 2023 г.
  24. ^ «JSON5» . json5. Архивировано из оригинала 29 ноября 2020 года . Проверено 16 декабря 2020 г.
  25. ^ ECMA-404, 2-е изд. , п. iii: «Синтаксис JSON не является спецификацией полного обмена данными. Для полноценного обмена данными требуется соглашение между производителем и потребителем о семантике, связанной с конкретным использованием синтаксиса JSON. Что действительно обеспечивает JSON, так это синтаксическая структура, для которой такой семантику можно прикрепить"
  26. ^ «Типы СМИ» . iana.org . Проверено 13 сентября 2015 г.
  27. ^ «Правильный заголовок типа контента для JSON» . РекБин . 13 января 2023 г. . Проверено 23 марта 2024 г.
  28. ^ «Схема JSON и гиперсхема» . json-schema.org . Проверено 8 июня 2021 г.
  29. ^ «Схема JSON — ссылки на спецификации» . json-schema.org . Проверено 22 марта 2024 г.
  30. ^ «Реализация схемы JSON» . json-schema.org . Проверено 8 июня 2021 г.
  31. ^ Брей, Тим (декабрь 2017 г.). Брей, Т. (ред.). «11. Вопросы IANA» . RFC 8259: Формат обмена данными в нотации объектов JavaScript (JSON) . IETF . дои : 10.17487/RFC8259 . S2CID   263868313 .
  32. ^ Зип, Крис (16 сентября 2012 г.). Брайан, Пол С. (ред.). «Ссылка на JSON: черновик-pbryan-zyp-json-ref-03» . Рабочая группа по интернет-инжинирингу .
  33. ^ Крокфорд, Дуглас (16 мая 2019 г.). «ЖСМин» . Проверено 12 августа 2020 г. JSMin [2001] — это инструмент минимизации, который удаляет комментарии и ненужные пробелы из файлов JavaScript.
  34. ^ «JSON: подмножество JavaScript, которого нет» . Магнус Холм. Архивировано из оригинала 13 мая 2012 года . Проверено 16 мая 2011 г.
  35. ^ «ECMA-262: Спецификация языка ECMAScript» (5-е изд.). Декабрь 2009 г. Архивировано (PDF) из оригинала 14 апреля 2011 г. . Проверено 18 марта 2011 г.
  36. ^ «Дугласскрокфорд/JSON-js» . Гитхаб . 13 августа 2019 г.
  37. ^ «Уязвимость отказа в обслуживании и небезопасного создания объектов в JSON (CVE-2013-0269)» . Проверено 5 января 2016 г.
  38. ^ «Уязвимость Microsoft .NET Framework JSON, связанная с отказом в обслуживании» . Архивировано из оригинала 6 ноября 2018 года . Проверено 5 января 2016 г.
  39. ^ «JSON: обезжиренная альтернатива XML» . json.org . Проверено 14 марта 2011 г.
  40. ^ «Спецификация XML 1.1» . Консорциум Всемирной паутины . Проверено 26 августа 2019 г.
  41. ^ Сатернос, Казимир (2014). Клиент-серверные веб-приложения с Javascript и Java . «О'Рейли Медиа, Инк.». п. 45. ИСБН  9781449369316 .
  42. ^ Эдельман, Джейсон; Лоу, Скотт; Освальт, Мэтт. Программирование и автоматизация сети . О'Рейли Медиа . для представления данных вы можете выбрать один из следующих: YAML, YAMLEX, JSON, JSON5, HJSON или даже чистый Python.
  43. ^ Перейти обратно: а б МакКомбс, Тейн (16 июля 2018 г.). «Почему JSON не является хорошим языком конфигурации» . Ясная диаграмма . Проверено 15 июня 2019 г.
  44. ^ «HOCON (нотация объекта конфигурации, оптимизированная для человека)» . Гитхаб . 28 января 2019 . Проверено 28 августа 2019 г. Основная цель: сохранить семантику (древовидную структуру; набор типов; кодирование/экранирование) из JSON, но сделать его более удобным в качестве формата файла конфигурации, редактируемого человеком.
  45. ^ Перейти обратно: а б «YAML не является языком разметки (YAML™) версии 1.2» . yaml.org . Проверено 13 сентября 2015 г.
  46. ^ Дом, Ли (2014). «Обозначение объекта CoffeeScript» . Большая книга атома . Архивировано из оригинала 22 апреля 2023 года . Проверено 29 апреля 2024 г.
  47. ^ «Базовая настройка» . атома Руководство по летной эксплуатации . Гитхаб . Архивировано из оригинала 29 апреля 2024 года . Проверено 29 апреля 2024 г.
  48. ^ «КСОН» . Беври. 20 декабря 2023 года. Архивировано из оригинала 23 апреля 2024 года . Получено 29 апреля 2024 г. — через GitHub .
  49. ^ Сонхун, Кан (1 июля 2021 г.). «КСОН» . Архивировано из оригинала 16 декабря 2023 года . Получено 27 февраля 2023 г. — через GitHub .
  50. ^ «config/HOCON.md в мастере · Lightbend/config» . Гитхаб . Проверено 5 августа 2021 г.
  51. ^ «Файл конфигурации — 2.5.x» . www.playframework.com . Проверено 5 августа 2021 г.
  52. ^ Документы Akka.NET HOCON
  53. ^ «Документация Akka.NET | Документация Akka.NET» . getakka.net . Проверено 5 августа 2021 г.
  54. ^ «Управление файлами конфигурации HOCON с помощью Puppet» . Архивировано из оригинала 11 февраля 2017 года . Проверено 4 марта 2023 г.
  55. ^ «Документация StreamBase» . docs.streambase.com . Проверено 5 августа 2021 г.
  56. ^ «Руководство по настройке» . docs.streambase.com . Проверено 5 августа 2021 г.
  57. ^ «Новый и заслуживающий внимания архив StreamBase» . docs.streambase.com . Проверено 5 августа 2021 г.
  58. ^ «Примечания к выпуску Exabeam Advanced Analytics» . Архивировано из оригинала 20 октября 2020 года . Проверено 4 марта 2023 г.
  59. ^ Проект ДЖИТСИ. «Фаза конфигурации 1» . Гитхаб . Проверено 16 февраля 2021 г.
  60. ^ Проект ДЖИТСИ. "ссылка.конф" . Гитхаб . Проверено 16 февраля 2021 г.
  61. ^ «Формат обмена данными JSON5» . Проверено 25 июня 2022 г.
  62. ^ SQLite. «Функции и операторы JSON» . Проверено 25 июня 2023 г.
  63. ^ «JSON с комментариями — редактирование JSON в коде Visual Studio» . Код Visual Studio . Майкрософт . Проверено 29 апреля 2024 г.
  64. ^ Батлер, Х.; Дейли, М.; Дойл, А.; Гиллис, Шон; Шауб, Т.; Хаген, Стефан (август 2016 г.). «RFC 7946 — Формат GeoJSON» . IETF Трекер данных . Проверено 17 июня 2022 г.
  65. ^ «ГеоJSON» . geojson.org . Проверено 7 августа 2022 г.
  66. ^ «JSON-LD 1.1» . Консорциум Всемирной паутины . 16 июля 2020 г. Проверено 17 июня 2022 г.
  67. ^ «JSON-LD — JSON для связывания данных» . json-ld.org . Проверено 7 августа 2022 г.
  68. ^ «JSON-RPC» . jsonrpc.org . Проверено 17 июня 2022 г.
  69. ^ «JsonML (язык разметки JSON)» . JsonML.org . Проверено 17 июня 2022 г.
  70. ^ МакКейми, Стивен (14 июня 2022 г.), JsonML , получено 7 августа 2022 г.
  71. ^ «Спецификация формата FasterXML/smile: новый дом для формата Smile» . Гитхаб . Проверено 17 июня 2022 г.
  72. ^ Гупта, Аюш (10 февраля 2019 г.). «Понимание улыбки — формат данных на основе JSON» . Кодируйтесь с Аюшем . Проверено 7 августа 2022 г.
  73. ^ «Универсальная двоичная спецификация JSON — универсально совместимая спецификация формата двоичного JSON» . ubjson.org . Проверено 17 июня 2022 г.
  74. ^ «UBJSON — JSON для современного C++» . json.nlohmann.me . Проверено 7 августа 2022 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: E2F26A31C8238CBD761FD5ED37BB80B0__1718352240
URL1:https://en.wikipedia.org/wiki/JSON
Заголовок, (Title) документа по адресу, URL1:
JSON - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)