BSON (, произносится ) — формат электронного обмена цифровыми данными, бинарная форма представления простых структур данных и ассоциативных массивов (которые в контексте обмена называют объектами или документами). Является надмножеством JSON, включая дополнительно регулярные выражения, двоичные данные и даты.

Типы данных и синтаксис BSON-документы (объекты) состоят из сортированных списков элементов. Каждый элемент состоит из имени поля, типа и значения. Имена полей — это строки. Типы включают: string — строка, int — целое число, double — число с плавающей запятой двойной точности, DateTime — дата, byte[] — массив байтов (бинарные данные), bool — булевые (True и False), null — «Null» (специальное значение), BsonObject — BSON-объект, BsonObject[] — массив BSON-объектов.

Не все эти типы доступны в JSON, в котором, например, нет массива с типом «бинарные данные», но из-за ограничений по длине некоторые действительные значения JSON (такие как очень длинные строки) не являются действительными значениями BSON.

Эффективность В сравнении с JSON, BSON спроектирован и для эффективного в отношении занимающего дискового пространства хранения данных, и скорости сканирования. Большие элементы в документе BSON имеют префикс с собственной длиной для облегчения сканирования.

BSON во многом аналогичен Protocol Buffers — реализации языково- и платформно-независимого формата для обмена данными, но BSON является более свободным от схемы данных. Тем самым, бо́льшая гибкость BSON уменьшает преимущества в производительности в случае, когда схема определена.

Пример Документ, такой как , будет сохранён следующим образом: \x16\x00\x00\x00 // общий размер документа \x02 // 0x02 = тип String hello\x00 // имя поля \x06\x00\x00\x00world\x00 // значение поля (размер значения, значение, null terminator) \x00 // 0x00 = type EOO ('end of object', 'конец объекта')

Примечания

Литература

Ссылки BSON Specification

Категория:JavaScript Категория:Форматы файлов Категория:JSON