Domanda

Quindi BSON è JSON serializzato giusto?

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

Ma perché si chiama binario JSON? Che cosa significa stand binari per?

tendo sempre a binario associato con 10101010101. Ma il formato BSON serializzazione di cui sopra non ero in forma 101.010.101.010.

Qualcuno potrebbe spiegare a me quello che il binario qui significa così ho capito perché si chiama binario JSON?

È stato utile?

Soluzione

E 'binario al contrario di testo. Mentre JSON è un testo leggibile, BSON è dati binari (solo byte). È potrebbe scriverlo fuori come 1001010, ecc, ma è più comune per mostrare ogni byte alla volta (così \ x16 è solo esadecimale 16, vale a dire il byte decimali 22). Fondamentalmente "binario" qui viene utilizzato per confrontare con i dati testuali, per non dire che in realtà è base 2 in particolare.

Questo significa che è possibile utilizzare solo BSON in situazioni in cui è possibile il trasporto dei dati binari arbitrari. Ad esempio, se si voleva BSON incorporare in un documento XML (per qualsiasi ragione!) Che avrebbe dovuto base64 codificare prima, perché XML è una rappresentazione testuale.

Altri suggerimenti

binario è in realtà un termine improprio, dal momento che tutto sul vostro computer è "binario" a un certo livello. Binario, quando si tratta di formati di file o flusso di rete, mezzo che non-facilmente-umana incomprensibili. Inoltre tende ad essere compatto.

Esempi di testo o "leggibili" (comprensibili umani) formati di file e di flusso:

Gli esempi di formati di file e stream "binari":

La cosa più nota qui è che i formati comprensibili umani hanno bisogno di molto meno spiegazione se semplicemente crepa aperte e cominciare a leggere. formati di file binari potrebbero avere bisogno di interi libri per spiegare:)

Un formato non è necessariamente puramente "binario" o puramente umano comprensibile, però. Ad esempio, si potrebbe forse capire una serie di singole cifre senza spazi, che rappresentano una serie di singole cifre. Probabilmente non poteva capire una serie di 48 numeri (senza spazi), che rappresentano x, y, z e valori per 16 3d vertici, anche se è possibile "leggere" di loro. Inoltre, v'è l'esempio di Skeet dei dati codificati "binari", soprattutto se si è inserito in un formato comprensibile più umano.

Il motivo è chiamato 'binario' è spiegato già:. In fondo, non è testuale, quindi distinzione in stile Unix (binario vs i file di testo)

Ma JSON parte è strano pure, poiché BSON NON è JSON - non è né sottoinsieme né superset. Ha molte più tipi di dati, quindi è una sorta di superset; ma anche non supporta tutte JSON legale a causa delle limitazioni su cose come il nome proprietà e il valore della stringa limitazioni di lunghezza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top