BSON
Rozszerzenie nazwy pliku |
bson
|
---|---|
Rodzaj mediów internetowych |
aplikacja/bson
|
Typ formatu | Wymiana danych |
Przedłużony od | JSON |
Strona internetowa |
BSON ( / . b iː s ə n / ) to format wymiany danych komputerowych Nazwa „BSON” jest oparta na terminie JSON i oznacza „Binary JSON”. Jest to forma binarna do reprezentowania prostych lub złożonych struktur danych, w tym tablic asocjacyjnych (znanych również jako pary nazwa-wartość), tablic indeksowanych liczbami całkowitymi oraz zestawu podstawowych typów skalarnych. BSON powstał w 2009 roku w MongoDB . Kilka skalarnych typów danych jest szczególnie interesujących dla MongoDB, a format jest używany zarówno jako format przechowywania danych, jak i format przesyłania sieciowego dla bazy danych MongoDB, ale może być używany niezależnie poza MongoDB. Implementacje są dostępne w różnych językach, takich jak C , C++ , C# , D , Delphi , Erlang , Go , Haskell , Java , JavaScript , Julia , Lua , OCaml , Perl , PHP , Python , Ruby , Rust , Scala , Smalltalk , i Swifta .
Typy danych i składnia
BSON ma opublikowaną specyfikację. Najwyższy element w strukturze musi być obiektem typu BSON i zawierać 1 lub więcej elementów, przy czym element składa się z nazwy pola, typu i wartości. Nazwy pól są łańcuchami. Typy obejmują:
- Unicode (przy użyciu kodowania UTF-8 )
- 32-bitowa liczba całkowita
- 64-bitowa liczba całkowita
- podwójna (64-bitowa liczba zmiennoprzecinkowa IEEE 754 )
- decimal128 (128-bitowa liczba zmiennoprzecinkowa IEEE 754-2008 ; wariant Binary Integer Decimal (BID)), odpowiedni jako nośnik danych finansowych wrażliwych na miejsca dziesiętne i liczb o dowolnej precyzji z dokładnością do 34 cyfr dziesiętnych, maksymalna wartość około 10 6145
- datetime bez strefy czasowej (długa liczba całkowita milisekund od epoki Uniksa )
- tablica bajtów (dla dowolnych danych binarnych)
-
boolowskie (
prawda
ifałsz
) - zero
- Obiekt BSON
- tablica BSON
- Kod JavaScript
- Dane binarne MD5
- Wyrażenia regularne ( wyrażenia regularne zgodne z Perlem („ PCRE ”) wersja 8.41 z obsługą UTF-8)
Ważnym wyróżnikiem w stosunku do JSON jest to, że BSON zawiera typy, których nie ma w JSON (np. tablica datetime i bajtowa) oraz zapewnia obsługę kilku typów numerycznych w sposób ścisły, zamiast uniwersalnego typu „liczbowego”. W sytuacjach, w których te dodatkowe typy muszą być reprezentowane w sposób tekstowy, można użyć rozszerzonego formatu JSON MongoDB.
Efektywność
W porównaniu z JSON, BSON został zaprojektowany tak, aby był wydajny zarówno pod względem przestrzeni dyskowej, jak i szybkości skanowania. Duże elementy w dokumencie BSON są poprzedzone polem długości, aby ułatwić skanowanie. W niektórych przypadkach BSON użyje więcej miejsca niż JSON ze względu na prefiksy długości i jawne indeksy tablic.
Przykład
Dokument taki jak {"hello": "world"}
będzie przechowywany jako:
\x16\x00\x00\x00 // całkowity rozmiar dokumentu \x02 // 0x02 = typ String hello\x00 // nazwa pola \x06\x00\x00\x00world\x00 // wartość pola (rozmiar wartości, wartość, null terminator) \x00 // 0x00 = wpisz EOO („koniec obiektu”)
Zobacz też
- Porównanie formatów serializacji danych
- JSON
- CBOR
- Uśmiech (binarny JSON)
- UBJSON
- Bufory protokołów
- Format komunikatu akcji
- Oszczędność Apache
- Pakiet wiadomości
- Zorientowana na dokumenty baza danych
- Abstrakcyjny zapis składni jeden (ASN.1)
- Bezprzewodowy binarny XML (WBXML)
- Wydajna wymiana XML