小编Mjo*_*nir的帖子

反序列化Bson文件

我有一个使用 mongodump 工具生成的 Bson 文件。我想在 C# 代码中反序列化。为此,我似乎可以使用 mongodb C# 驱动程序或 Json.net 库。我尝试了它们,但我无法让它们工作。

使用 Json.net 库:“input”是 Bson 文件的路径

JsonSerializer serializer = new JsonSerializer();
BsonReader reader = new BsonReader(File.OpenRead(input));
serializer.Deserialize<List<Json.Profil>>(reader);
Run Code Online (Sandbox Code Playgroud)

在 Deserialize() 上,出现以下异常:

无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[MoulinetteConsole.Json.Profil]',因为该类型需要 JSON 数组(例如 [1, 2,3])以正确反序列化。

要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET 类型(例如,不是像整数这样的原始类型,不是像这样的集合类型)数组或列表),可以从 JSON 对象反序列化。还可以将 JsonObjectAttribute 添加到类型中以强制其从 JSON 对象反序列化。

[编辑]如果使用工具 bsondump 将 bson 导出到 json 文件,我得到:

{ "id" : "1",
  "value" : { "foo" : null, "bar" : "test"}
}
{ "id" : "2", …
Run Code Online (Sandbox Code Playgroud)

c# serialization json mongodb

5
推荐指数
1
解决办法
3609
查看次数

标签 统计

c# ×1

json ×1

mongodb ×1

serialization ×1