尝试运行以下代码:
var doc = BsonDocument.Parse(rawjson);
其中rawjson是:
[{"PersonName":"Jim Test"}]
返回以下错误:
Cannot deserialize a 'BsonDocument' from BsonType 'Array'.
根据大多数在线json验证器,rawjson似乎有效。有没有其他方法可以使用Mongodb C#驱动程序将其解析为BsonDocument?
答案 0 :(得分:0)
由于您没有准确说明rawjson
的数据类型,我认为您的意思是字符串。
BsonDocument.Parse()方法手册指定它接受string
作为参数。
要么,你的“原始json”可能是一个JSON文档的字符串:
var rawjson = "{'PersonName': 'Jim Test'}";
Console.WriteLine(BsonDocument.Parse(rawjson));
或者,它可以是字符串格式的JSON文档数组:
string[] rawjson = { "{'PersonName': 'Jim Test'}" };
Console.WriteLine(BsonDocument.Parse(rawjson[0]));
或者,如果您的原始json字符串实际上是数组文档字符串的形式:
var rawjson = "[{'PersonName': 'Jim Test'}]";
string[] separatingChars = { "[", ",", "]" }; // split on these chars
string[] docs = rawjson.Split(separatingChars, System.StringSplitOptions.RemoveEmptyEntries );
foreach (string doc in docs) {
Console.WriteLine(BsonDocument.Parse(doc));
}