JSON
JSON (англ. JavaScript Object Notation, в английском обычно произносится как [ˈdʒeɪsən]) — текстовый формат обмена данными, основанный на ECMAScript языка программирования JavaScript[1]. Представляет собой языконезависимый стандарт для передачи структурированных данных. Формат использует пары «ключ-значение» и упорядоченные списки. JSON обеспечивает баланс между читаемостью для человека и машинной обработкой; более компактен, чем XML, и является его альтернативой[2].
Формат получил распространение в веб-разработке с середины 2000-х годов[3]. К 2010-м годам стал основным форматом обмена данными в REST API, вытесняя XML в ряде новых проектов. Применяется в документо-ориентированных базах данных (MongoDB — через расширение BSON, CouchDB — напрямую)[4], файлах настроек приложений, системах кэширования данных, асинхронных запросах между клиентом и сервером.
История создания
Формат создан Дугласом Крокфордом в начале 2000-х годов в компании State Software, которую основали Крокфорд и Чип Морнингстар[5]. Название предложено в марте 2001 года соучредителями на круглом столе. Рассматривались два варианта названия формата — JSML (англ. JavaScript Markup Language) и JSON (англ. JavaScript Object Notation)[6].
Первое JSON-сообщение передано Крокфордом и Морнингстаром в апреле 2001 года. Формат разработан как облегчённая замена XML для веб-приложений. В конце 1990-х — начале 2000-х для обмена данными между сервером и браузером применялись различные подходы: встраиваемые Flash-компоненты, Java-апплеты[7], скрытые iframe-элементы. Эти решения требовали дополнительных плагинов, имели проблемы с безопасностью и кроссбраузерной совместимостью.
Крокфорд использовал подход, предложенный сотрудником Netscape: встраивание JavaScript-объектов в HTML для передачи данных. Метод основывался на синтаксисе литералов объектов JavaScript, описанном в спецификации ECMAScript[7]. Разработанная система использовала стандартные возможности браузеров без внешних зависимостей. Она обеспечивала уровень абстракции для веб-разработчиков, позволяя создавать приложения с постоянным обменом данными между клиентом и сервером. Для этого применялся приём, напоминающий позднее описанную технику Comet — поддержание длительных HTTP-соединений, которые сервер обновлял при поступлении новых данных или по истечении времени ожидания браузера[7].
Стандартизация
В 2001 году Крокфорд создал веб-страницу с описанием формата для использования другими разработчиками. В 2002 году он зарегистрировал доменное имя json.org и разместил на нём описание формата. Спецификация намеренно сделана минималистичной и умещается на обратной стороне визитной карточки. Крокфорд исходил из принципа, что минимальное число согласуемых вопросов повышает вероятность взаимодействия между системами[8]. В 2002 году Крокфорд покинул State Software.
Первая официальная спецификация вышла в июле 2006 года как RFC 4627, написанный Дугласом Крокфордом[9]. В марте 2014 года опубликован RFC 7159. В декабре 2017 года вышел RFC 8259, устранивший несоответствия с другими спецификациями JSON и исправивший ошибки[1]. Документ включил рекомендации по совместимости на основе практического опыта.
Международный стандарт ECMA-404 опубликован организацией Ecma International в декабре 2017 года[10]. Формат также описан в стандарте ISO/IEC 21778:2017. В 2005 году компания Yahoo! начала предоставлять некоторые веб-службы в формате JSON[3].
JSON описан в стандарте ECMA-404 «The JSON Data Interchange Syntax» и в спецификации RFC 8259 «The JavaScript Object Notation (JSON) Data Interchange Format». Спецификацию опубликовала Internet Engineering Task Force (IETF) в декабре 2017 года[10]. Документ относится к категории Internet Standards Track и представляет согласие сообщества IETF. Документ прошёл публичное рецензирование и получил одобрение Internet Engineering Steering Group (IESG) для публикации[1].
RFC 8259 заменил RFC 7159 (который сам вытеснил RFC 4627 и RFC 7158) как действующий стандарт JSON. Формат JSON заимствован из стандарта ECMAScript (ECMA-262, третье издание)[8]. Грамматика в документах ECMA-404 и RFC 8259 идентична; различия касаются только способов формального представления спецификации[10].
Ecma International и IETF поддерживают согласованность документов. При обнаружении различий между документами организации проводят совместную работу по обновлению обеих версий[10]. При обнаружении ошибки в одном документе проверяется наличие аналогичной ошибки в другом и при необходимости вносятся исправления. Изменения в документах проводятся совместно для сохранения согласованности.
Международный стандарт 2017 года определяет произношение «JSON» как [ˈdʒeɪsən], как в «Jason and The Argonauts»[10]. JSON стал строгим подмножеством ECMAScript начиная с редакции языка 2019 года. Изначально Крокфорд утверждал, что JSON является подмножеством JavaScript и ECMAScript[8], однако в ранних версиях спецификации JSON допускались конструкции, которые не соответствовали строгим синтаксическим правилам JavaScript.
Спецификация определяет JSON как лёгкий текстовый языконезависимый формат обмена данными. JSON определяет небольшой набор правил форматирования для переносимого представления структурированных данных. Стандарт устраняет несоответствия с другими спецификациями JSON, исправляет ошибки спецификации и предлагает рекомендации по совместимости на основе практического опыта[1].
Вклад Дугласа Крокфорда
Крокфорд работал с JavaScript с конца 1990-х годов. Он выступал за упрощение языка и отказ от усложняющих конструкций. В 2008 году вышла его книга «JavaScript: The Good Parts»[11], в которой описаны рекомендуемые практики работы с языком. В период активного расширения спецификации JavaScript Крокфорд противился добавлению избыточной сложности.
В 2001 году Крокфорд написал на Java один из первых синтаксических анализаторов JSON. В анализаторе использовалась локальная переменная index типа int, отслеживающая количество обработанных символов в файле или потоке. При обнаружении синтаксической ошибки переменная указывала её местоположение. Тип int позволял обрабатывать файлы размером до двух гигабайт, что Крокфорд считал достаточным для практического применения формата[12].
Крокфорд создал инструменты для работы с JavaScript. Он разработал статический анализатор JSLint[13], проверяющий код на соответствие стандартам качества. Также создал минификатор JSMin[14], сжимающий код путём удаления пробелов и комментариев.
Крокфорд окончил Государственный Университет в Сан-Франциско в 1975 году. В начале 1980-х годов приобрёл 8-разрядный компьютер Atari и написал игру Galahad and the Holy Grail для Atari Program Exchange[15]. Работал в компаниях Atari, Lucasfilm, занимал должности в Yahoo! и PayPal[5]. Участвовал в развитии спецификации языка JavaScript и создании связанных инструментов.
Структура данных
JSON основан на двух структурах данных. Первая — неупорядоченный набор пар, реализованный как объект. Вторая — массив неупорядоченных значений[1]. Обе структуры поддерживаются большинством языков программирования и могут вкладываться друг в друга для создания иерархических структур.
Объект в JSON представляет неупорядоченный набор пар «имя-значение»[1] и заключается в фигурные скобки «{ }». Ключ записывается как строка в двойных кавычках, после которой ставится двоеточие и записывается значение. Пары разделяются запятыми. Порядок пар внутри объекта не имеет значения для обработки данных.
Массив представляет упорядоченную коллекцию значений и заключается в квадратные скобки[1]. Значения записываются последовательно и разделяются запятыми. Порядок элементов в массиве сохраняется при обработке.
Значением может быть строка в двойных кавычках, число, объект, массив или один из литералов: true, false, null[1]. JSON поддерживает шесть базовых типов данных. Строки записываются в двойных кавычках и могут содержать escape-последовательности. Числа записываются в десятичной системе счисления без начальных нулей. Логические значения представлены литералами true и false. Специальное значение null обозначает отсутствие данных[1]. Объекты и массивы являются составными типами, содержащими другие значения. Каждое значение в JSON должно соответствовать одному из этих типов.
Типы данных
- Строка представляет последовательность из нуля или более символов Unicode, заключённую в двойные кавычки. Строки могут содержать буквы, цифры, пробелы и специальные символы. Символ Unicode может быть записан в виде 6-значной последовательности: обратная дробная черта, буква
uв нижнем регистре и четыре шестнадцатеричные цифры, которые указывают код символа. Шестнадцатеричные цифры отAдоFмогут указываться в любом регистре (например,\u00A9). Для специальных символов используются управляющие последовательности:"для двойной кавычки,\для обратной косой черты,/для косой черты,\bдля возврата на символ,\fдля перевода страницы,\nдля новой строки,\rдля возврата каретки,\tдля табуляции,\uXXXXдля символа Unicode[1]. Строковый тип данных JSON соответствует аналогичным типам в языках C и Java. - Число представляет знаковое десятичное число, которое может содержать дробную часть и экспоненциальную нотацию с символом E. Формат не различает целые числа и числа с плавающей точкой. JavaScript использует формат IEEE-754 двойной точности для всех числовых значений[1]. Позднее в JavaScript появилась поддержка BigInt, однако другие языки могут кодировать числа иначе. Числа записываются только в десятичном формате. Специальные значения NaN и Infinity не поддерживаются спецификацией.
- Логический тип принимает значения
trueилиfalse, записанные строчными буквами без кавычек. Значенияtrueиfalseв JSON записываются в нижнем регистре[1], в отличие от Python, где используютсяTrueиFalseс заглавной буквы. Выражения, которые вычисляются какtrueилиfalse, не принимаются спецификацией — значения 0, «true» илиTRUEне являются валидными логическими значениями. Логический тип сопоставляется с аналогичными типами в большинстве языков программирования и требует минимального объёма памяти для хранения и передачи. Nullпредставляет отсутствие значения и записывается строчными буквами. Значение «null» в кавычках является строкой, а неnull. Варианты написанияNULL,nil,undefinedне допускаются спецификацией. Значениеnullотличается от логическогоfalse—nullобозначает отсутствие значения, аfalseпредставляет логическое состояние. Согласно спецификации, корневым элементом JSON может быть не только объект или массив, но и простое значение — строка, число, логическое значение илиnull[1]. Для представленияnullвся JSON-строка состоит только из словаnullбез фигурных скобок, квадратных скобок или кавычек. Объект может содержать ключ с null-значением {«key1»:null}, массив может содержатьnull [null], однако это полноценные объект и массив, а не null-значения. Пустой объект «{ }» и пустой массив «[ ]» являются валидными значениями, но не представляютnull.- Объект представляет неупорядоченную коллекцию пар «ключ-значение», заключённую в фигурные скобки. Ключи записываются как строки в двойных кавычках[1]. Значения могут быть любым валидным типом данных JSON — строкой, числом, объектом, массивом, логическим значением или
null. Объекты заключаются в фигурные скобки «{ }». При записи нескольких пар они разделяются запятыми. Завершающие запятые после последней пары не допускаются. Имена свойств объекта могут быть любыми строками[1]. Спецификация не требует уникальности ключей и не определяет значимость порядка пар имён и значений, хотя некоторые реализации сохраняют порядок. - Массив представляет упорядоченный список значений, заключённый в квадратные скобки. Значения массива не обязаны иметь одинаковые типы[1] и могут быть вложенными. Элементы разделяются запятыми. Порядок элементов в массиве сохраняется при обработке. Доступ к элементам массива зависит от используемой среды (в JavaScript — по индексам, начиная с 0)[10]. Пустой массив [] является валидным значением. Массивы используются для представления списков данных — пользователей, товаров, сообщений. В отличие от массивов в некоторых языках программирования, JSON-массивы не имеют фиксированной длины и могут содержать любое количество элементов, но конкретные реализации могут накладывать ограничения на размер текста и глубину вложенности[16]. Последний элемент массива не должен иметь запятую после себя — завершающая запятая вызывает ошибку анализа в большинстве парсеров. Массивы часто сочетаются с объектами для создания сложных структур данных, представляющих сущности приложений.
- JSON не поддерживает типы данных
function,dateиundefined. Для передачи временных меток используются строковые представления в формате ISO 8601, например «2025-10-11T14:30:00Z»[17], либо числовые значения Unix-времени. Каждый подход имеет преимущества и недостатки при обработке в различных языках программирования. Функции не включены в спецификацию, поскольку JSON предназначен для представления данных, а не исполняемого кода. Это ограничение предотвращает выполнение потенциально вредоносного кода при анализе JSON-данных.Undefinedне включён в спецификацию из-за неоднозначной семантики, различающейся между языками программирования. Вместоundefinedиспользуетсяnullили соответствующее свойство опускается в объекте.
Синтаксические правила
Одинарные кавычки недопустимы для строк и ключей — спецификация требует использования двойных кавычек[1]. После каждой пары «имя-значение» ставится запятая, за исключением последней пары в объекте или массиве.
Завершающие запятые (англ. trailing commas) запрещены спецификацией[16]. Их наличие вызывает ошибки при разборе документа парсерами. Имена свойств объекта могут быть любыми строками. Стандарт не требует уникальности ключей и не определяет значимость порядка пар[10]. Пробелы (англ. whitespace) могут располагаться между любыми двумя синтаксическими элементами для улучшения читаемости. Спецификация JSON не предусматривает использование комментариев в документах.
Некоторые символы внутри строк требуют экранирования с помощью обратной косой черты. К ним относятся двойные кавычки, обратная косая черта и управляющие символы. Двойная кавычка внутри строкового значения записывается как ". Без экранирования парсер интерпретирует символ кавычки как завершение строки, что приводит к ошибке синтаксического анализа оставшейся части документа. Обратная косая черта записывается как \[16], поскольку сама служит символом экранирования.
Файлы JSON используют расширение .json. Официальный MIME-тип для JSON — application/json[1]. Большинство современных реализаций используют этот тип при передаче данных. Универсальный идентификатор типа — public.json.
JSON является форматом данных и содержит только свойства без методов. Спецификация требует использования двойных кавычек вокруг строк и имён свойств. Одинарные кавычки не соответствуют стандарту. Ошибки в расстановке запятых или двоеточий приводят к невозможности разбора документа парсером.
Применение
Веб-приложения и API
JSON используют для обмена данными между клиентом и сервером веб-приложения[7]. Отправитель сериализует структуру данных в JSON-строку, получатель десериализует её обратно в объект и обрабатывает на своей стороне.
Формат широко применяется в REST API. В SOAP сообщениях используется только XML[18], тогда как REST API поддерживает как XML, так и JSON. JSON получил большее распространение в REST-архитектуре благодаря компактности синтаксиса и скорости обработки парсерами. Размер JSON-документов меньше эквивалентных XML-документов за счёт отсутствия закрывающих тегов и меньшего количества служебных символов.
JSON позиционируется как альтернатива XML[1] с меньшими накладными расходами на обработку. Оба формата поддерживают создание, чтение и декодирование в системах обмена данными. Распространение архитектурного стиля REST (Representational State Transfer) способствовало широкому использованию JSON для обмена данными по сети[19]. Формат применяется для асинхронной связи между браузером и сервером, заменив XML в качестве основного формата для таких взаимодействий.
REST представляет архитектурный стиль для создания веб-служб. В RESTful-API обычно отображают операции над ресурсами на стандартные HTTP-методы (например, GET/POST/PUT/DELETE)[20]. RESTful API проектируются в соответствии с принципами REST и возвращают данные в формате JSON благодаря его компактности и эффективности обработки.
При вводе данных в веб-формы происходит обмен JSON-запросами между клиентом и сервером для получения подсказок автодополнения. Запросы отправляются при каждом изменении содержимого поля ввода. Сетевой трафик можно отследить через инструменты разработчика браузера во вкладке Network[21].
Клиент передаёт серверу запрос в JSON-формате, содержащий параметры поиска. Запрос включает пару «ключ-значение» с ключом query, значением которого является введённая пользователем строка поиска. Параметр count определяет количество возвращаемых подсказок. В сервисе DaData параметр count возвращает от 10 до 20 подсказок[22]. Сервер обрабатывает запрос и возвращает JSON-ответ со списком подходящих вариантов автодополнения.
NoSQL-базы данных
Документо-ориентированные NoSQL-базы данных хранят данные в JSON-подобном формате. MongoDB представляет документо-ориентированную систему управления базами данных, не требующую описания схемы таблиц. База данных относится к классу NoSQL-систем[4] и написана на языке C++.
MongoDB использует BSON (англ. binary JSON) — двоичное представление JSON для ускорения обработки и сокращения размера файлов[23]. Формат BSON обеспечивает более быструю обработку данных и меньший объём файлов по сравнению с текстовым JSON за счёт двоичного кодирования.
В MongoDB коллекции соответствуют таблицам реляционных баз данных, а документы — строкам[24]. Документ представляет файл в формате BSON, содержащий структурированные записи в виде пар «имя-значение». Структура документа допускает хранение сложной информации и позволяет опускать отдельные поля для различных записей, что обеспечивает гибкость схемы данных. Напрямую язык SQL не поддерживается, для работы с базой применяются языки программирования[24].
Система хранения документов и запросов в MongoDB похожа на JSON, что упрощает работу разработчикам JavaScript. MongoDB имеет открытый исходный код[25] и поддерживается на операционных системах Linux, Windows и macOS. База данных может размещаться в облачных средах. Система применяется разработчиками серверной части веб-приложений.
Сочетание ODM (англ. Object-Document Mapper) и MongoDB распространено в сообществе Node.js благодаря схожести системы хранения документов с JSON. Приложения на Express поддерживают различные базы данных, совместимые с Node.js. Фреймворк Express не определяет требований к системам управления базами данных[25].
Среди распространённых решений — PostgreSQL, MySQL, Redis, SQLite и MongoDB. При выборе базы данных учитываются время разработки, сложность освоения, возможности копирования, стоимость эксплуатации и поддержка сообщества.
Mongoose представляет ODM для доступа к данным MongoDB[25]. Библиотека является интерфейсом для MongoDB — NoSQL-базы данных с открытым исходным кодом и документо-ориентированной моделью данных. Mongoose применяется в приложениях Node.js для работы с коллекциями и документами MongoDB[25], аналогичными таблицам и строкам реляционных баз данных.
Файлы настроек
JSON применяется в файлах настроек приложений[26]. Отсутствие комментариев в стандартной спецификации привело к созданию расширенных вариантов формата для конфигурационных файлов. К таким вариантам относятся HJSON[27], HOCON и JSON5. Эти форматы добавляют поддержку комментариев, завершающих запятых и других возможностей, отсутствующих в стандартном JSON.
Версия 1.2 спецификации YAML разработана как строгое надмножество JSON, включающее весь синтаксис JSON. Сам JSON намеренно лишён комментариев ради интероперабельности. Когда нужны пояснения в конфигурациях, автор JSON Дуглас Крокфорд советовал добавлять комментарии и удалять их препроцессором перед разбором[28].
Сериализация данных
Формат применяется для сериализации (преобразования объектов в текстовое представление) и десериализации (обратного преобразования текста в объекты) в различных языках программирования. JSON используется в асинхронных запросах AJAX для динамического обновления частей веб-страницы без полной перезагрузки[29]. Публичные API веб-служб предоставляют данные в формате JSON для интеграции с приложениями.
В веб-приложениях формат, как правило, применяется для обмена данными между браузером и сервером через AJAX-запросы, а также между серверами через программные HTTP-интерфейсы. Веб-службы извлекают данные из баз данных и формируют ответы в формате JSON для передачи клиентским приложениям. Клиентские библиотеки JavaScript обрабатывают полученные JSON-данные для отображения на веб-странице или дальнейшей обработки в приложении.
Некоторые системы управления базами данных поддерживают преобразование результатов запросов в формат JSON непосредственно на уровне SQL[30]. Прямое формирование JSON в запросе снижает объём дополнительной обработки табличных результатов в коде приложения или использования внешних библиотек сериализации. Результаты запросов преобразуются в JSON-структуры с указанием имён полей в качестве ключей и значений записей в качестве значений.
Функция OPENJSON в T-SQL представляет табличную функцию для разбора JSON-текста. Функция принимает JSON-строку, находит массивы объектов, выполняет обход элементов массива и по одной строке таблицы для каждого элемента массива[31]. Коллекции JSON преобразуются в табличный формат для загрузки данных в реляционные базы или выполнения запросов к JSON-данным средствами SQL. Функция извлекает значения из JSON-объектов и преобразует их в столбцы таблицы согласно заданной схеме.
Поддержка и совместимость
UTF-8 обязателен для межсистемного обмена. Внутри закрытых систем разрешено использовать UTF-16 или UTF-32[16]. Формат поддерживается текстовыми редакторами, табличными процессорами и средами разработки. Некоторые офисные приложения, включая Excel 2016+ и LibreOffice, и большинство систем управления базами данных обеспечивают чтение и запись JSON в UTF-8. Кодировка UTF-8 применяется в веб-технологиях и обмене структурированными данными между приложениями[16].
Облачные платформы предоставляют службы для работы с JSON-данными. Amazon Web Services включает решения для NoSQL баз данных. Amazon DocumentDB, совместимый с MongoDB, представляет управляемую документную базу данных с поддержкой JSON[32]. Служба работает с документными данными различного масштаба.
Amazon Neptune представляет управляемую графовую базу данных. Amazon MemoryDB (совместимый с OSS Redis и Valkey) является базой данных в оперативной памяти с поддержкой JSON[33]. Служба обеспечивает время отклика на уровне микросекунд при операциях чтения и записи данных.
Amazon ElastiCache представляет управляемое хранилище данных в оперативной памяти с поддержкой OSS Redis, Valkey и Memcached. Служба применяется для кэширования и обработки данных в режиме реального времени[33]. Amazon Keyspaces for Apache Cassandra является управляемой широкостолбцовой базой данных[34]. Служба обеспечивает высокую доступность через репликацию данных между регионами.
Документные базы данных используют модель данных, соответствующую представлению JSON-объектов в коде приложений. Документы в таких базах данных имеют полуструктурированный и иерархический характер. Модель позволяет изменять структуру документов согласно требованиям приложений без изменения схемы базы данных.
Модель документной базы данных применяется в каталогах товаров, профилях пользователей и системах управления контентом, где каждый документ имеет уникальную структуру и изменяется в процессе эксплуатации системы. Amazon DocumentDB with MongoDB compatibility и MongoDB являются документными базами данных. Системы предоставляют программные интерфейсы для работы с JSON-документами при разработке приложений.
JSON стал основой для современных форматов передачи данных, таких как GeoJSON для географических координат, JSON-LD для семантической разметки и OpenAPI для описания интерфейсов API. Эти расширения сохраняют синтаксис JSON и добавляют специализированные структуры.
Примечания
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 1,15 1,16 1,17 1,18 Брей Т. Энциклопедия сетевых протоколов / ред. с англ Н. Малых. — 2017.
- ↑ Канаев К. А., Фалеева Е. В., Пономарчук Ю. В. Сравнительный анализ форматов обмена данными, используемых в приложениях с клиент-серверной архитектурой // Фундаментальные исследования. — Пенза, 2015. — № 2. — С. 5569—5572. — ISSN 1812-7339.
- ↑ 3,0 3,1 Pinkiewicz, M. The power of JSON: what's behind the popularity?. Brandmed. Дата обращения: 12 октября 2025.
- ↑ 4,0 4,1 CouchDB and MongoDB Compared. MongoDB. Дата обращения: 12 октября 2025.
- ↑ 5,0 5,1 Morningstar C. Oral History of Chip Morningstar (англ.). — Mountain View: Computer History Museum, 2019. — P. 25. — 34 p.
- ↑ The Rise and Rise of JSON. Two-Bit History (21 сентября 2017). Дата обращения: 12 октября 2025.
- ↑ 7,0 7,1 7,2 7,3 Mesbah A. Analysis and Testing of Ajax-based Single-page Web Applications. — Zutphen: Wöhrmann Print Service, 2009. — С. 44. — 208 с.
- ↑ 8,0 8,1 8,2 Crockford D. JSON: The Fat-Free Alternative to XML. JSON. Дата обращения: 12 октября 2025.
- ↑ Crockford D. The application/json Media Type for JavaScript Object Notation (JSON). IETF (июль 2006). Дата обращения: 12 октября 2025.
- ↑ 10,0 10,1 10,2 10,3 10,4 10,5 10,6 The JSON Data Interchange Syntax. Standard ECMA-404. – 2nd edition (декабрь 2017).
- ↑ Крокфорд Д. JavaScript: сильные стороны / пер. с англ. Н. Вильчинский. — СПб.: Питер, 2019. — 304 с. — ISBN 978-5-4461-1260-9.
- ↑ The Better Parts: доклад Дугласа Крокфорда о JavaScript и языках программирования будущего с конференции .concat() 2015. JUG RU Group (27 апреля 2017). Дата обращения: 12 октября 2025.
- ↑ Help. JSLint. Дата обращения: 12 октября 2025.
- ↑ Crockford D. JSMin. Crockford (16 мая 2019). Дата обращения: 12 октября 2025.
- ↑ Crockford D. Galahad and the Holy Grail. — Sunnyvale: The ATARI Program Exchang, 1982.
- ↑ 16,0 16,1 16,2 16,3 16,4 Bray T. The JavaScript Object Notation (JSON) Data Interchange Format. IETF (декабрь 2017). Дата обращения: 12 октября 2025.
- ↑ Соответствие YQL и JSON-типов.. Yandex Cloud (19 января 2023). Дата обращения: 12 октября 2025.
- ↑ SOAP Version 1.2 Part 1: Messaging Framework (Second Edition). W3C Recommendation (27 апреля 2007). Дата обращения: 12 октября 2025.
- ↑ Данные JSON в SQL Server. Learn. Microsoft (23 июля 2025). Дата обращения: 12 октября 2025.
- ↑ Rodriguez A. RESTful Web Services: The Basics. IBM developerWorks (6 ноября 2008). Дата обращения: 12 октября 2025.
- ↑ Basques K. Network features reference. Chrome Dev Tools (16 июля 2024). Дата обращения: 12 октября 2025.
- ↑ API: подсказки по адресам. DaData. Дата обращения: 12 октября 2025.
- ↑ Documents. MongoDB. Дата обращения: 12 октября 2025.
- ↑ 24,0 24,1 FAQ: MongoDB Fundamentals.. MongoDB. Дата обращения: 12 октября 2025.
- ↑ 25,0 25,1 25,2 25,3 Учебник Express часть 3: Использование базы данных (с помощью Mongoose). Mozilla Developer Network. Дата обращения: 12 октября 2025.
- ↑ Параметры конфигурации среды выполнения .NET. Microsoft Learn (17 июня 2025). Дата обращения: 12 октября 2025.
- ↑ Zangl C. The Human JSON (Hjson) Configuration Format. IETF Internet-Draft (23 мая 2016). Дата обращения: 12 октября 2025.
- ↑ Douglas Crockford: Why I removed comments from JSON. Hacker News (30 апреля 2012). Дата обращения: 12 октября 2025.
- ↑ AJAX. Mozilla Developer Network Web Docs. Дата обращения: 12 октября 2025.
- ↑ Форматирование результатов запроса в формате JSON с помощью FOR JSON — SQL Server. Microsoft Learn (30 июля 2025). Дата обращения: 12 октября 2025.
- ↑ OPENJSON (Transact-SQL). Microsoft Learn (30 июля 2025). Дата обращения: 12 октября 2025.
- ↑ В чем разница между MongoDB и MySQL?. Amazon Web Services. Дата обращения: 12 октября 2025.
- ↑ 33,0 33,1 Amazon MemoryDB — Часто задаваемые вопросы. Amazon Web Service. Дата обращения: 12 октября 2025.
- ↑ Amazon Keyspaces: How it works. https://docs.aws.amazon.com/keyspaces/latest/devguide/how-it-works.html.+Дата обращения: 12 октября 2025.