Base64編碼BSON小於BSON?Base64編碼BSON小於BSON?
回答
Piskvor的右側base64編碼的任何東西都比原始的長。您可以使用64位編碼的方式將其壓縮到具有有限字符集的頻道上,而不是縮小尺寸。
也許問題應該是:Base64編碼的BSON小一些然後JSON?
如果是這樣的話,那麼JSON-vs-BSON就非常依賴於內容。例如像1.23456789
這樣的任意浮點數字在BSON中的8個二進制字節中比JSON字符串數字版本更有效地存儲。但更常見的數字,如1
,在JSON中作爲字符串存儲的效率更高。
對於字符串值,BSON會丟失4個字節的長度字,但會返回一個"
和\
JSON必須轉義,加上更多字符串以及JSON必須使用十六進制序列的控制字符。 (一些JSON編碼器也是\u
- 爲了確保安全傳輸而不考慮字符集,每個非ASCII字符都可以)。
IMO:BSON在整體上並沒有比JSON更加緊湊的優勢。它的優勢在於更低級的語言解碼的簡單性,以及JavaScript沒有的數據類型。它對二進制字符串和其他一些情況可能具有邊際優勢;當然值得檢查一個特定的工作量。但它說明了JSON中BSON規範本身的例子要小得多。
至於base64編碼的BSON:相同,除了33%更差。
你的權利後來我打算比較Base64編碼的BSON到JSON。謝謝! – 2010-04-19 19:01:38
否:使用base64時,3個字節的明文變爲4個字節的編碼文本,因此無論數據有效負載如何,結果都會更大。另請參閱:http://en.wikipedia.org/wiki/Base64
哇,我不知道,非常感謝! – 2010-04-19 19:01:01
剛纔寫的是我的soolution到shortify BSON 請檢查,它可以幫助你:
var bsonShortify = {
encode:function(bson){
return this._hex2urlBase(bson.substr(0,bson.length/2))+this._hex2urlBase(bson.substr(bson.length/2,bson.length/2));
},
decode:function(token){
return this._urlBase2hex(token.substr(0,token.length/2))+this._urlBase2hex(token.substr(token.length/2,token.length/2));
},
_base:62,
_baseChars:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
_urlBase2hex:function(token){
var s = 0, n, l = (n = token.split("")).length, i = 0;
while(l--) s += this._baseChars.indexOf(n[i++]) * Math.pow(this._base, l);
return s.toString(16);
},
_hex2urlBase:function(bson){
var s = "", n = parseInt(bson,16);
while(n) s = this._baseChars[n % this._base] + s, n = Math.floor(n/this._base);
return s;
}
}
TEST
//we have bson
var bson = '4f907f7e53a58f4313000028';
//let's encode it
var urlstring = bsonShortify.encode(bson) // = OqAYQdCHijCDMbRg
//let's decode urlstring
var decoded_bson = bsonShortify.decode(urlstring); // = 4f907f7e53a58f4313000028
console.log('bson',bson);
console.log('urlstring',urlstring);
console.log('decoded_bson',decoded_bson);
我不知道這回答了大小比較的問題。 ('不低調,只是想知道) – WEFX 2012-12-12 19:59:29
- 1. mongodb BSON大小
- 2. BSON解碼器異常
- 3. BSON忽略場
- 4. Delphi的Bson庫?
- 5. com.mongodb.DBObject/BSON serializer for java
- 6. 是BSON表示縮小了嗎?
- 7. BSON數據庫的簡單編輯器
- 8. BSON :: InvalidDocument:無法序列化類用戶的目標爲BSON
- 9. MongoDB與Java異常在線程「main」java.lang.NoClassDefFoundError:org/bson/conversions/Bson
- 10. 如何解碼西里爾文的bson?
- 11. MongoDB \ BSON \ ObjectID從MongoDB中丟失了JSON編碼
- 12. 在mongodb中批量插入(像導入)bson編碼的數據
- 13. BSON類型和std :: chrono
- 14. 使用PHP,使用BSON
- 15. 「無效BSON字段名」 UPSERT
- 16. 轉換的JavaScript對象BSON
- 17. BSON-append_double與雙精度
- 18. 更改BSON字段值(C++)
- 19. 基準測試:BSON vs JSON
- 20. 格式JSON字符串(bson)
- 21. 反序列化MongoDB BSON
- 22. 無法從壓縮BSON
- 23. 爲什麼叫做BSON?
- 24. 'nodemon'生成bson錯誤
- 25. 轉換變異類型BSON
- 26. base64編碼圖像大小
- 27. 理解MongoDB的BSON文獻大小限制
- 28. mongo文檔中的BSON文檔大小超過16 MB
- 29. 如何從JAXB轉到MongoDB的BSON
- 30. bson規範示例的更好解釋?
測量=會意。 – BalusC 2010-04-19 17:08:59