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

JSON

JSON (JavaScript Object Notation, произносится «джейсон») — это текстовый формат обмена данными, основанный на синтаксисе объектов языка JavaScript. Он является лёгким, удобным для чтения человеком и простым для разбора и генерации компьютерными программами. JSON используется для передачи структурированных данных между сервером и веб-клиентом, а также в конфигурационных файлах, базах данных и API.

История

Формат JSON был разработан программистом Дугласом Крокфордом в начале 2000-х годов. Первоначально он предназначался для обмена данными в веб-приложениях, где требовалась альтернатива более громоздкому XML. В 2001 году Крокфорд и Чип Морнингстар зарегистрировали первый домен json.org, где опубликовали спецификацию. В 2006 году JSON был стандартизирован как RFC 4627, а в 2013 году — как ECMA-404. В 2017 году вышла обновлённая версия стандарта RFC 8259, которая является действующей на текущий момент.

Ключевым преимуществом JSON перед XML стала его компактность и скорость обработки: для разбора JSON не требуется парсер с поддержкой сложных схем и пространств имён. Это привело к тому, что JSON стал де-факто стандартом для REST API, конфигурационных файлов (например, в Node.js, Docker) и хранения данных в NoSQL-базах данных (MongoDB, CouchDB).

Синтаксис

Формат JSON поддерживает два типа структур данных: коллекцию пар «ключ-значение» (объект) и упорядоченный список значений (массив). Эти структуры могут быть вложены друг в друга произвольным образом.

Типы данных

JSON поддерживает четыре примитивных типа и два структурных:

Пример JSON-документа

``json { "name": "Иван Петров", "age": 30, "isEmployee": true, "address": { "city": "Москва", "street": "Тверская", "zipCode": null }, "phoneNumbers": [ "+7-495-123-45-67", "+7-916-987-65-43" ] } ``

Ограничения и правила

Применение

Веб-API и REST

JSON является основным форматом для передачи данных в RESTful API. Сервер возвращает клиенту JSON-ответ, который браузер или мобильное приложение легко разбирает с помощью встроенного метода JSON.parse() в JavaScript. Большинство современных веб-фреймворков (Django, Flask, Express.js, Spring Boot) имеют встроенную поддержку сериализации и десериализации JSON.

Конфигурационные файлы

Многие инструменты и платформы используют JSON для хранения конфигурации. Например:

Базы данных

NoSQL-базы данных, такие как MongoDB, CouchDB и Firebase, хранят данные в формате, близком к JSON (BSON — бинарный JSON в MongoDB). Это позволяет гибко работать с документами без заранее заданной схемы.

Обмен данными между системами

JSON используется для сериализации объектов при передаче между микросервисами, в очередях сообщений (RabbitMQ, Kafka) и в файлах журналов (логи). Его компактность и читаемость делают его предпочтительным выбором для интеграции разнородных систем.

Сравнение с другими форматами

JSON vs XML

JSON vs YAML

JSON vs Protocol Buffers (protobuf)

Инструменты и библиотеки

Для работы с JSON существует множество библиотек на всех популярных языках программирования:

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

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

Интересные факты

Источники

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

На главную BFOmetr →