BSON Hex Görüntüleyici
BSON baytlarını hex olarak görmek için tek alanlı bir JSON nesnesi yapıştırın.
Sonuç
Nasıl hesaplanır?
Belge şu düzende kurulur: int32 toplam uzunluk | tür baytı | anahtar (C-metni) | değer | 0x00. Toplam uzunluk küçük-uçlu yazılır; kendisini, öğeyi ve sondaki sonlandırıcı baytı da sayar. Metin değeri 0x02 türünü alır ve int32 uzunluk (metin baytı artı bir), ardından UTF-8 baytları ve bir 00 sonlandırıcı olarak saklanır. Tam sayı değeri 0x10 türünü alır ve dört küçük-uçlu bayt olarak yazılır. Yalnızca tam bir alanı olan JSON nesnesi kabul edilir; değer metin ya da -2147483648 ile 2147483647 arası tam sayı olmalıdır. Başka her durumda sonuç üretilmez. Baytlar büyük harfli, boşlukla ayrılmış hex olarak gösterilir; alan alan açıklama yoktur.
Örnek hesaplama
{"hello":"world"} için: hello anahtarı 5 bayt artı 00 sonlandırıcı (6) tutar. world değeri 5 bayt artı sonlandırıcıdır; uzunluk ön eki 06 00 00 00 olur ve değer kısmı 4 + 6 = 10 bayt tutar. Tür baytı 02 (1 bayt), 4 baytlık toplam uzunluk ve son 00 (1 bayt) eklenince: 4 + 1 + 6 + 10 + 1 = 22. İlk dört bayt bu yüzden 16 00 00 00 olur (hex 16 = 22). Araç toplam uzunluğu 22 bayt olarak, alan türünü string (0x02) olarak bildirir.
Sık yapılan hatalar
- İki veya daha fazla alanlı belge, iç içe nesne ya da dizi yapıştırmak. Görüntüleyici tam bir alan kodlar; bunlarda sonuç çıkmaz.
- Mantıksal değer, 1.5 gibi ondalık, null veya 2147483647 üstü tam sayı kullanmak. Yalnızca metin ve 32 bit tam sayı desteklenir; büyük sayı için int64 (0x12) gerekir ve burada yoktur.
- Karakter ile baytı karıştırmak. é gibi ASCII dışı bir karakter UTF-8'de iki bayt tutar; uzunluk ön eki ve toplam uzunluk görünen metnin düşündürdüğünden fazla artar.
- Uzunluk baytlarını büyük-uçlu okumak. BSON tam sayıları küçük-uçlu saklar; 22 sayısı 00 00 00 16 değil, 16 00 00 00 görünür.
- Metin uzunluk ön ekinin sonlandırıcı sıfır baytını da içerdiğini unutmak; bu yüzden metin uzunluğundan bir fazladır.
Bu hesaplama hakkında
BSON (Binary JSON), MongoDB'nin belgeleri saklamak ve ağ protokolü (wire protocol) üzerinden alışveriş etmek için kullandığı ikili kodlanmış serileştirme biçimidir — JSON'u tarih ve ikili veri gibi ek türlerle genişletir ve bayt akışındaki her öğe aynı düzeni izler: tek baytlık bir tür kodu, null ile sonlanan bir alan adı dizesi ve ardından türüne göre kodlanmış değer (örneğin 32 bit küçük-uçlu bir tam sayı veya bir metin için 4 baytlık uzunluk ön eki ardından UTF-8 baytları).
Bu görüntüleyici, tek alanlı küçük bir JSON nesnesini (değeri bir metin veya 32 bit tam sayı olan) alır ve MongoDB'nin sürücüsünün yapacağı gibi tam olarak kodlar, ardından sonuçtaki baytları onaltılık olarak, belgenin toplam uzunluğu ve alanın türüyle birlikte gösterir — onaltılık çıktının kendisi etiketlenmez, ancak uzunluk ön ekini, tür baytını, alan adını ve değer baytlarını yukarıdaki düzene bakarak okuyabilirsiniz — böylece bir veritabanı sürücüsü çalıştırmadan JSON'un metin gösteriminin BSON'un kompakt ikili düzenine nasıl eşlendiğini görebilirsiniz.
Bu faydalı oldu mu?
En fazla 3 tepki seçebilirsiniz.
Popüler hesaplayıcılar
Kredi Hesaplama
Aylık taksit, toplam faiz ve ödeme planını hesaplayın.
Yüzde Hesaplama
Yüzde değişim, indirim ve oran hesaplamaları.
İndirim Hesaplama
İndirimli fiyatı, kazancı ve indirim tutarını hesaplayın.
Vücut Kitle Endeksi (VKİ)
Boy ve kiloya göre vücut kitle endeksini hesaplayın.
Yaş Hesaplama
Doğum tarihinden bugüne tam yıl, ay ve gün cinsinden yaşınızı hesaplayın.
Bileşik Faiz Hesaplama
Ana para, faiz oranı ve süreye göre bileşik faizle nihai tutarı hesaplayın.
Tüm Hesaplayıcılar
- Kredi Hesaplama
- Kar Hesaplama
- İndirim Hesaplama
- Vücut Kitle Endeksi (VKİ)
- Yüzde Hesaplama
- İdeal Kilo Hesaplama
- Yaş Hesaplama
- Gebelik Hesaplama
- Bileşik Faiz Hesaplama
- Bazal Metabolizma (BMR) Hesaplama
- Bahşiş Hesaplama
- Yakıt Maliyeti Hesaplama
- Tarih Farkı Hesaplama
- Uyku Döngüsü Hesaplama
- Günlük Su İhtiyacı Hesaplama
- Basit Faiz Hesaplama
- Kalp Atış Hızı Bölgeleri Hesaplama
- Koşu Temposu Hesaplama
- Evcil Hayvan Yaşı Hesaplama
- Kalori Yakım Hesaplama
- Makro Besin Dağılımı Hesaplama
- TDEE (Toplam Günlük Enerji İhtiyacı) Hesaplama
- Bel-Kalça Oranı Hesaplama
- Takdir ve Teşekkür Belgesi Hesaplama
- Tek Tekrar Maksimum (1RM) Hesaplama
- Yumurtlama (Ovülasyon) Hesaplama
- Elektrik Maliyeti Hesaplama
- Birim Fiyat Hesaplama
- Tasarruf Hedefi Hesaplama
- Başabaş Noktası Hesaplama
- Boya Hesaplama
- Vize-Final Ortalama Hesaplama
- İş Günü Hesaplama
- Saat Farkı (Süre) Hesaplama
- Yakıt Tüketimi Hesaplama
- Sıcaklık Birimi Çevirici
- Fayans (Seramik) Hesaplama
- En-Boy Oranı Hesaplama
- Roma Rakamı Çevirici
- Hedef Kilo Süresi Hesaplama
- Maaş Çevirici (Saatlik-Yıllık)
- Kredi Kartı Doğrulama (Luhn)
- Vücut Yüzey Alanı (BSA) Hesaplama
- Hissedilen Sıcaklık Hesaplama
- Ohm Kanunu Hesaplama
- PPI (Piksel Yoğunluğu) Hesaplama
- Molar Kütle Hesaplama
- Burç Hesaplama (Batı + Çin)
- IBAN Doğrulama
- Ayakkabı Numarası Dönüştürücü
- Ülke Bilgisi (Telefon Kodu) Sorgulama
- Saat Dilimi Farkı (Dünya Saati)
- CAGR (Bileşik Yıllık Büyüme) Hesaplama
- 72 Kuralı Hesaplama
- Kandaki Alkol (Promil) Hesaplama
- Yağsız Vücut Kütlesi (LBM) Hesaplama
- Pisagor Teoremi Hesaplama
- Hız Birimi Dönüştürücü
- İndirme Süresi Hesaplama
- Tarih Hesaplama (Gün Ekle/Çıkar)
Hesaplayıcı bulunamadı
Yorumlar (1)
Bu görüntüleyici yalnızca tek alanlı bir nesneyi kodlar; gerçek veritabanı belgelerini incelemek için değil, bayt düzenini öğrenmek için kullanın. {"n":5} girdisi 12 baytlık 0C 00 00 00 10 6E 00 05 00 00 00 00 çıktısını verir; buradaki 10 32 bitlik tamsayı türünü, 6E ise n harfini gösterir. İki alanlı girdi sonuç vermez. Sırada hangi BSON türlerinin desteklenmesini isterdiniz?