我正在比较JSON和BSON以序列化对象.这些对象包含多个具有大量整数的数组.在我的测试中,我序列化的对象包含大约12,000个整数的总数.我只对序列化结果的大小比较感兴趣.我使用JSON.NET作为执行序列化的库.我正在使用JSON,因为我也希望能够在Javascript中使用它.
JSON字符串的大小约为43kb,BSON结果的大小为161kb.因此差异系数约为4.这不是我的预期,因为我看了BSON,因为我认为BSON在存储数据方面更有效率.
所以我的问题是为什么BSON效率不高,能否提高效率?或者是否有另一种使用包含大量整数的数组序列化数据的方法,可以在Javascript中轻松处理?
您可以在下面找到测试JSON/BSON序列化的代码.
// Read file which contain json string
string _jsonString = ReadFile();
object _object = Newtonsoft.Json.JsonConvert.DeserializeObject(_jsonString);
FileStream _fs = File.OpenWrite("BsonFileName");
using (Newtonsoft.Json.Bson.BsonWriter _bsonWriter = new BsonWriter(_fs)
{ CloseOutput = false })
{
Newtonsoft.Json.JsonSerializer _jsonSerializer = new JsonSerializer();
_jsonSerializer.Serialize(_bsonWriter, _object);
_bsonWriter.Flush();
}
Run Code Online (Sandbox Code Playgroud)
编辑:
以下是生成的文件 https://skydrive.live.com/redir?resid=9A6F31F60861DD2C!362&authkey=!AKU-ZZp8C_0gcR0
我有一个在 Azure 上托管的静态网站,使用启用了“静态网站”选项的存储帐户。我希望用户能够使用“https”协议访问该网站。因此,我创建了一个启用“自定义 HTTPS”的 CDN,以便使用 https 协议访问内容。当访问端点主机名和源主机名上的网站时,这非常有用。但是,如果我使用 http 协议访问该网站,则会收到错误“AccountRequiresHttps”。我尝试通过使用根文件夹中的“.htaccess”文件将“http”请求重定向到“htpps”请求来解决此问题,但这似乎不起作用。
“.htaccess”文件的内容:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Run Code Online (Sandbox Code Playgroud)
“.htaccess”文件是否正确?或者有没有办法在保留https协议的同时启用http协议?或者还有其他方法将http重定向到https吗?