Pregunta

Así BSON es JSON serializado derecho?

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

Pero por qué se llama binario JSON? Lo que hace gradas binarios para?

Siempre tiendo a binario asociado con 10101010101. Sin embargo, el formato de serialización BSON anterior no estaba en forma 101010101010.

¿Puede alguien explicar por mí lo que el binario significa aquí lo que entienden por qué se llama binario JSON?

¿Fue útil?

Solución

Es binaria en lugar de texto. Mientras que JSON es un texto legible por humanos, es BSON datos binarios (acaba de bytes). Usted podría escribirlo como 1001010, etc, pero es más común para mostrar cada byte a la vez (por lo que \ x16 es sólo hexagonal 16, es decir, el byte decimal 22). Básicamente "binario" que aquí se utiliza para compararlo con los datos de texto, no quiere decir que en realidad es la base 2 en particular.

Esto significa que sólo se puede utilizar BSON en situaciones en las que puede transportar datos binarios arbitrarios. Por ejemplo, si se quería BSON incrustar en un documento XML (por cualquier razón!) Que lo tienes que base64 codifican en primer lugar, porque es una representación XML basado en texto.

Otros consejos

binario es realmente un nombre inapropiado, ya que todo en su equipo es "binario" en algún nivel. Binario, cuando se trata de archivo o conexiones de red, formatos de medios no-humana-fácilmente comprensibles. También tiende a ser compacto.

Ejemplos de Pruebas o "legibles" (comprensible humanos) de archivos y formatos de la corriente:

Los ejemplos de formatos de archivo y corriente "binario":

Lo de la mayor parte nota aquí es que los formatos comprensibles humanos necesitan mucho menos explicaciones si simplemente las abrían y empezar a leer. formatos de archivo binario puede ser que necesite libros enteros para explicar:)

Un formato no es necesariamente puramente "binario" o puramente humana comprensible, sin embargo. Por ejemplo, probablemente podría comprender una serie de números de un solo dígito, sin espacios, que representan una serie de números de un solo dígito. Es probable que no podría entender una serie de 48 números (sin espacios), que representan x, y, z y valores para 16 3d vértices, a pesar de que se puede "leer" de ellos. Además, no hay ejemplo de datos binarios "" codificados de Skeet, especialmente si está integrada en un formato comprensible más humano.

La razón se le llama 'binario' se explica ya:. Básicamente, no es textual, por lo tanto, la distinción al estilo Unix (binario vs archivos de texto)

Pero JSON parte es extraño, así, ya no es BSON JSON - no es ni subconjunto ni superconjunto. Tiene muchos más tipos de datos, por lo que es una especie de superconjunto; pero también no es compatible con todos los JSON legal debido a las limitaciones de cosas como el nombre de la propiedad y el valor de cadena limitaciones de longitud.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top