Открыть сервис

ECMA-404

ECMA-404 — это международный стандарт, определяющий синтаксис и семантику формата обмена данными JSON (JavaScript Object Notation). Он разработан и поддерживается Европейской ассоциацией производителей компьютеров (Ecma International) и описывает текстовый формат, не зависящий от языка программирования, предназначенный для структурированного представления данных. Стандарт гарантирует интероперабельность (способность к совместной работе) систем, использующих JSON.

История

JSON как формат был впервые предложен программистом Дугласом Крокфордом в начале 2000-х годов как подмножество синтаксиса литералов объектов языка JavaScript. Его популярность быстро росла благодаря простоте и удобству использования в веб-приложениях, особенно в архитектуре AJAX (Asynchronous JavaScript and XML), где он начал вытеснять более громоздкий XML.

В 2013 году Ecma International, известная стандартизацией языка JavaScript (ECMAScript, стандарт ECMA-262), учредила технический комитет TC39 для формализации спецификации JSON. Результатом работы стал стандарт ECMA-404, первая редакция которого была опубликована в октябре 2013 года. В декабре 2017 года была принята вторая редакция, которая исправила неточности и уточнила формулировки, но не изменила синтаксис формата.

В 2017 году стандарт ECMA-404 был также принят как международный стандарт ISO/IEC 21778:2017 («Информационные технологии — Формат обмена данными JSON — Синтаксис»), что закрепило его статус как глобального стандарта.

Структура и синтаксис

ECMA-404 определяет только синтаксис JSON, не затрагивая вопросы семантики конкретных приложений. Формат основан на двух базовых структурах:

Допустимые типы значений

Стандарт разрешает следующие типы данных:

Синтаксические правила

JSON предъявляет строгие требования к форматированию:

Пример валидного документа JSON

``json { "название": "Пример", "версия": 2.0, "включён": true, "список": [1, 2, 3], "объект": { "ключ": "значение" }, "пустое_поле": null } ``

Отличия от ECMAScript и других форматов

Несмотря на происхождение из JavaScript, JSON в стандарте ECMA-404 является полностью независимым форматом. Основные отличия от литералов объектов JavaScript:

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

Применение

ECMA-404 нашёл применение в самых разных областях информационных технологий:

Веб-разработка

Наибольшее распространение JSON получил в веб-приложениях как основной формат обмена данными между клиентом (браузером) и сервером. Он лежит в основе RESTful API (Representational State Transfer) и AJAX-запросов. Пример: при отправке формы на сайте сервер может ответить JSON-объектом с результатом операции.

Базы данных

Некоторые системы управления базами данных (СУБД) либо полностью построены на JSON, либо имеют расширенную поддержку этого формата:

Настройки приложений и конфигурации

JSON часто используется для хранения конфигурационных файлов. Например, проект package.json в экосистеме Node.js или файлы конфигурации для многих современных инструментов (ESLint, Prettier, Webpack).

Телеметрия и логи

Формат применяется для структурированного логирования (например, в формате JSON Lines — каждая строка представляет собой отдельный JSON-объект). Это упрощает автоматизированный анализ логов с помощью инструментов, таких как Logstash (входит в стек ELK — Elasticsearch, Logstash, Kibana).

Критика и ограничения

Несмотря на широкое распространение, ECMA-404 подвергается критике за ряд ограничений:

Стандарт ECMA-404 остаётся одним из наиболее стабильных и простых форматов обмена данными, что обуславливает его повсеместное использование в современных информационных системах.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →