Question

BSON est JSON sérialisé droit?

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

Mais pourquoi est-il appelé binaire JSON? Qu'est-ce que les stands binaires pour?

Je tends toujours binaire associé avec 10101010101. Mais le format de sérialisation BSON était au-dessus pas sous forme 101.010.101.010.

Quelqu'un pourrait-il me expliquer ce que le binaire signifie ici donc je comprends pourquoi on l'appelle binaire JSON?

Était-ce utile?

La solution

Il est binaire, par opposition au texte. Alors que JSON est un texte lisible par l'homme, BSON est des données binaires (octets seulement). Vous peut l'écrire comme 1.001.010 etc, mais il est plus fréquent de montrer chaque octet à la fois (si \ x16 est hex seulement 16, à savoir l'octet décimal 22). Fondamentalement, « binaire » ici est utilisé pour le comparer avec les données textuelles, ne veut pas dire qu'il est en fait la base 2 en particulier.

Cela signifie que vous ne pouvez utiliser BSON dans des situations où vous pouvez transporter des données binaires arbitraires. Par exemple, si vous voulez incorporer dans BSON un document XML (pour une raison quelconque!) Vous auriez à base64 encoder d'abord, parce que XML est une représentation de texte.

Autres conseils

Binary est vraiment mal choisi, puisque tout sur votre ordinateur est « binaire » à un certain niveau. Binary, en matière de formats de fichier ou un flux de réseau, des moyens non facilement compréhensible pour l'. Elle tend aussi à être compact.

Exemples de texte ou fichier « lisibles par l'homme » (compréhensibles) de l'homme et les formats flux:

Des exemples de fichiers "binaires" et formats flux:

La chose la plus note est ici que les formats compréhensibles humains ont besoin de beaucoup moins d'explications si vous les cassez simplement ouvrir et commencer à lire. formats de fichiers binaires pourraient avoir besoin des livres entiers pour expliquer:)

Un format est pas nécessairement purement « binaire » ou compréhensible purement humaine, cependant. Par exemple, vous pourriez probablement comprendre une série de nombres à un chiffre sans espace, ce qui représente un tableau de nombres à un seul chiffre. Vous pourriez probablement pas comprendre une série de 48 numéros (sans espace), qui représentent x, y et z des valeurs pour 16 3d sommets, même si vous pouvez « lire ». En outre, il est l'exemple de Skeet de données « binaires » codées, en particulier si elle est intégrée dans un format compréhensible plus humain.

La raison pour laquelle il est appelé « binaire » est déjà expliqué. En fait, ce n'est pas textuel, d'où la distinction de style unix (binaire vs fichiers texte)

Mais une partie JSON est étrange aussi, puisque BSON n'est pas JSON - c'est ni sous-ensemble, ni surensemble. Il a beaucoup plus de types de données, il est donc en quelque sorte surensemble; mais il ne supporte pas tous JSON juridique en raison des limitations sur des choses comme le nom de la propriété et la valeur de chaîne limites de longueur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top