Протоколы и двоичные форматы

конвертер BSON в JSON

Проверьте типы и смещения в одном документе BSON либо создайте новый файл из объекта расширенного JSON.

конвертер BSON в JSON

Байты BSON или расширенный JSON

Результат

Ввод остаётся в этом браузере; подключения к базе и отправки файлов нет.

Параметры

EJSON форматируется с отступом в два пробела. Обработка запускается вручную.

Введите байты BSON или объект расширенного JSON.

Когда на руках байты из mongodump, конвертер BSON в JSON помогает увидеть поля. Но обычный JSON способен скрыть различие между ObjectId, Int64 и датой, поэтому сначала полезно изучить дерево типов.

Этот просмотр BSON показывает абсолютное смещение каждого элемента. Обратное кодирование создаёт новый файл из EJSON, не меняя исходный. Можно открыть файл BSON локально; просмотр BSON онлайн не требует подключения к базе.

Зачем конвертер BSON в JSON показывает типы?

Связывает читаемое значение с его местом в двоичном документе.

Байты становятся упорядоченными полями

Перед преобразованием конвертер BSON в JSON проверяет длину и завершающий байт целого документа. Дерево показывает тип, значение и абсолютное смещение; повреждение не маскируется частичным успехом.

Поток двоичных плиток раскрывается в дерево со значками идентификатора, даты, числа и вложенного документа.

Сохранение оболочек типов

Канонический расширенный JSON оставляет оболочки ObjectId, Int64, Decimal128 и двоичных подтипов. Упрощённый вид удобен для чтения, но повторное кодирование может изменить тип.

Блоки документа с символами типов связаны в обе стороны со структурой из фигурных скобок.

Три проверки до выгрузки

01

Указать формат байтов

Hex допускает пробелы, двоеточия и дефисы. Base64 выбирается явно и требует верного дополнения. Новый файл заменит ввод только после подтверждения.

  • При склейке документов ошибка покажет смещение конца первого.
02

Просмотреть дерево типов

Запустите разбор вручную и проверьте порядок полей, тип BSON и смещение. Между деревом и двумя видами EJSON можно переключаться без повторного разбора.

  • После изменения ввода старый результат нельзя копировать или скачивать.
03

Выбрать форму вывода

Для сохранения типов скачайте канонический EJSON. Упрощённый вид полезен для чтения. Кодирование создаёт отдельный файл .bson.

  • Ctrl/Cmd+Enter выполняет выбранное направление.

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

Тип каждого поля BSON

ObjectId, Int32, Int64, Decimal128, дата, двоичный подтип и вложенные элементы различаются в дереве.

Две формы расширенного JSON

Конвертер расширенного JSON по умолчанию сохраняет оболочки типов и отдельно предлагает читаемый вид с предупреждением.

Новый BSON из EJSON

Кодируйте объект EJSON, изучайте байты в hex или Base64 и скачивайте новый двоичный файл.

Границы корректного прочтения

Только один целый документ
Дамп mongodump с несколькими документами отклоняется на смещении после первого. Для всего потока используйте bsondump.
Типы не теряются молча
Текстовый вывод по умолчанию канонический. Упрощённый EJSON может изменить тип чисел и дат при повторном кодировании.
Без shell-кода и соединения
ObjectId(...) не исполняется, соединения с MongoDB и загрузки URL нет. Ввод для кодирования — стандартный JSON с оболочками EJSON.
Лимиты браузера
Не более 16 МиБ, 64 уровней и 100 тысяч полей. Это бюджет инструмента, а не ограничение формата BSON.

Вопросы про конвертер BSON в JSON

Как получить JSON из файла BSON, созданного mongodump?

Один документ здесь можно скачать как канонический EJSON. Дамп коллекции обычно содержит несколько документов; для полного потока подходит bsondump.

Можно ли прочитать много BSON-документов из одного файла?

Нет. Вход должен целиком состоять из одного документа. Лишние байты дают ошибку с абсолютным смещением, а первая запись не выдаётся за весь файл.

Можно ли превратить ObjectId и даты в обычный JSON?

Упрощённый EJSON делает некоторые даты понятнее, а канонический сохраняет типы. Для обычных строк преобразуйте нужные поля отдельно после проверки.

Как увидеть дату BSON в читаемом виде?

В упрощённом EJSON допустимые даты показаны как ISO-время. Каноническая форма сохраняет миллисекунды в оболочке $date.

Почему строка с датой из JSON после кодирования остаётся строкой?

Обычная строка JSON не несёт тип даты BSON. Используйте оболочку $date, затем проверьте тип в дереве.

Нашли определение, которое должно поддерживаться?

Откройте конвертер BSON в JSON

Конвертер BSON в JSON поможет сопоставить байты одного документа с деревом типов и каноническим EJSON, прежде чем создавать новый файл.

Обработка остаётся в этом браузере.