**BSON**, bir bilgisayar veri değişim biçimidir. "BSON" adı, JSON terimine dayanmaktadır ve "Binary JSON" anlamına gelir. İlişkisel diziler, tam sayı indeksli diziler ve bir dizi temel skaler tip dahil olmak üzere basit veya karmaşık veri yapılarını temsil etmek için ikili bir şekildir. BSON, 2009 yılında MongoDB'de ortaya çıktı. Çeşitli skaler veri türleri MongoDB için özel ilgi alanıdır ve biçim, MongoDB veri tabanı için hem veri depolama hem de ağ aktarım biçimi olarak kullanılır, ancak MongoDB olmadan da bağımsız bir şekilde kolaylıkla kullanılabilir. C, C++, C#, D, Delphi, Erlang, Go, Haskell, Java, JavaScript, Julia, Lua, OCaml, Perl, PHP, Python, Ruby, Rust, Scala, Smalltalk ve Swift gibi çeşitli programlama dillerinde uyarlamaları bulunmaktadır.

Veri türleri ve sözdizimi
-------------------------

BSON'un yayınlanmış bir belirtimi vardır. Yapıda en üstteki öğe, BSON nesnesi türünde olmalıdır ve 1 veya daha fazla öğe içermelidir; burada bir öğe, alan adı, tür ve değerden oluşur. Alan adları metinseldir. Türler şunları içerir:

* Unicode dizesi (UTF-8 kodlamasını kullanarak)
* 32 bit tam sayı
* 64 bit tam sayı
* Kayan nokta
* decimal128
* tarih saat dilimi
* bayt dizisi
* boole (doğru ve yanlış)
* hükümsüz
* BSON nesnesi
* BSON dizisi
* JavaScript kodu
* MD5 ikili veri
* Düzenli ifade

BSON'un, JSON'dan önemli bir farkı, JSON'da bulunmayan veri türlerini içermesidir.

Yeterlik
--------

JSON ile karşılaştırıldığında BSON, hem depolama alanı hem de tarama hızı açısından daha verimli olacak şekilde tasarlanmıştır. Bir BSON belgesindeki büyük öğelerin önüne, taramayı kolaylaştırmak için bir uzunluk alanı eklenir. Bazı durumlarda BSON, uzunluk önekleri ve belirtilmiş dizi indeksleri nedeniyle JSON'dan daha fazla yer kaplar.

Örnek
-----

**BSON**, `​{"hello": "world"​`} gibi bir JSON belgesini aşağıdaki şekilde saklayacaktır:

```
\x16\x00\x00\x00          // total document size
\x02                      // 0x02 = type String
hello\x00                 // field name
\x06\x00\x00\x00world\x00 // field value (size of value, value, null terminator)
\x00                      // 0x00 = type EOO ('end of object')

```

Kaynakça
--------

1. ↑  "BSON Support in ASP.NET Web API 2.1 - ASP.NET 4.x". *Microsoft Docs*. 20 Ocak 2014. 29 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ocak 2010.
2. 1 2  "BSON (Binary JSON) Serialization". 27 Şubat 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Kasım 2021.
3. ↑  "BSON Implementation Projects". 30 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Kasım 2021.
4. ↑  "BSON (Binary JSON): Specification". *bsonspec.org*. 30 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Kasım 2021.
5. ↑  "Introducing NoSQL and MongoDB | What Is NoSQL? | InformIT". *www.informit.com*. 2 Ekim 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Ocak 2018.
6. ↑  "regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation". *api.mongodb.com*. 10 Mayıs 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Ocak 2018.

Dış bağlantılar
---------------

* Resmî site
* bsondump tool included with MongoDB 25 Ocak 2022 tarihinde Wayback Machine sitesinde arşivlendi.