Вопрос

Итак, BSON - JSON Serialized, верно?

{"hello": "world"}"\x16\x00\x00\x00\x02hello\x00 \x06\x00\x00\x00world\x00\x00"

Но почему это называется двоичным JSON? Для чего двоичные обозначают?

Я всегда склонн связать двоичный с помощью 10101010101. Но формат сериализации BSON выше не был в форме 101010101010.

Может ли кто-нибудь объяснить для меня, что здесь значит бинар, поэтому я понимаю, почему это называется двоичным JSON?

Это было полезно?

Решение

Это двоичный в отличие от текста. Принимая во внимание, что JSON - это читаемый человеком текст, BSON - это двоичные данные (просто байты). Ты мог Запишите его как 1001010 и т. Д., Но более распространено, чтобы показать каждый байт за раз (SO x16 - это всего лишь шестнадцатеричный 16, то есть десятичный байт 22). В основном «двоичный» здесь используется для сравнения его с текстовыми данными, не сказать, что это на самом деле база 2 в частности.

Это означает, что вы можете использовать только BSON в ситуациях, где вы можете транспортировать произвольные двоичные данные. Например, если вы хотите встроить BSON в документе XML (по какой-либо причине!) Вы должны сначала придеться в Base64, потому что XML является текстовым представлением.

Другие советы

Бинарный действительно неправильный, так как все на вашем компьютере «двоичный» на некотором уровне. Двоичный, когда дело доходит до форматов файлов или сетевых потоков, означает не легко-человеку - понятно. Это также имеет тенденцию быть компактным.

Примеры текстовых или «читаемых человеком» (понятных человеческих) файлов и форматов потока:

Примеры «двоичных» форматов файлов и потоков:

Материал большинства примечаний здесь является то, что человеческие понятные форматы нуждаются в намного меньше объяснения, если вы просто взломаете их открытыми и начать чтение. Двоичные форматы файлов могут понадобиться целые книги, чтобы объяснить :)

Формат не обязательно является чисто «двоичным» или чисто человеком понятно. Например, вы, вероятно, можете понять серию однозначных чисел без пробелов, которые представляют собой массив однозначных чисел. Вы, вероятно, не могли понять серию 48 чисел (без пробелов), которые представляют значения x, y и z для 16 3D вершин, даже если вы можете «читать» их. Кроме того, есть пример скитания кодированных «двоичных» данных, особенно если он встроен в более понятный формат человека.

Причина, по которой она называется «двоичным», уже объясняется: в основном это не текстовое, отсюда различие в стиле Unix (бинарные текстовые файлы).

Но часть JSON странная, так как BSON не JSON - это ни подмножество, ни суперсета. У него еще много данных, так что это своего рода суперсета; Но это также не поддерживает все юридические JSON из-за ограничений на такие вещи, как имя свойства и ограничения длины значений строки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top