我正在尝试将从MongoDB返回的一些BSON序列化为JSON:
var bson = MongoDB.Bson.BsonDocument.Parse(@"{
""_id"": ObjectId(""5a45a64ec7fe121dfc673c6f""),
""MyOtherId"": ObjectId(""5a45a64dc7fe121dfc673c6e""),
""Blah"": ""Test""
}");
我想将ObjectID变形为一个字符串,所以我得到了
"_id": "5a45a64ec7fe121dfc673c6f",
代替
"_id": {"$oid": "5a4597a3d999f209e05df993"},
所以我试过这个:
var result = Newtonsoft.Json.JsonConvert.SerializeObject(bson, new Newtonsoft.Json.Bson.Converters.BsonDataObjectIdConverter());
但是我收到一个错误:
Newtonsoft.Json.JsonSerializationException:'在'MongoDB.Bson.BsonObjectId'上从'AsBoolean'获取值时出错。
内部异常:InvalidCastException:无法将类型为“MongoDB.Bson.BsonObjectId”的对象强制转换为“MongoDB.Bson.BsonBoolean”。
我仍然得到简化版本的错误:
var result = Newtonsoft.Json.JsonConvert.SerializeObject(bson);
使用Newtonsoft.Json v10.0.3和MongoDB.Driver v2.5.0