我正在比较 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();
}
编辑:
这是生成的文件 https://skydrive.live.com/redir?resid=9A6F31F60861DD2C!362&authkey=!AKU-ZZp8C_0gcR0