0
我一直在这工作,并设法让json解析成一个C#对象。现在下一步是将一个json数组解析为一个List。我已成功地完成这项工作,但我敢肯定有一个更好的办法从BsonArray转换到一个列表将BsonArray转换成列表<T>
using (StreamReader file = File.OpenText(filename))
{
try
{
//first up convert to bson
var jsonSampleData = file.ReadToEnd();
//var bsonSampleData = BsonDocument.Parse(jsonSampleData);
//this would be for a single BSOnDocument
var bsonSampleData = BsonSerializer.Deserialize<BsonArray>(jsonSampleData);
var x = bsonSampleData.ToList();
List<ThePlan> lst = new List<ThePlan>();
foreach (var doc in x)
{
var t = BsonSerializer.Deserialize<ThePlan>(doc.AsBsonDocument);
lst.Add(t);
}
}
catch (Exception ex)
{
throw;
}
编辑,其他信息
要清楚我是什么需要完成的是将给定的json文件并将其重新水化到List。这是因为我是mongo的新手,而T是mongo的实体表示。
正如安德烈指出它工作正常:
using (StreamReader file = File.OpenText(filename))
{
var jsonSampleData = file.ReadToEnd();
_thePlan = BsonSerializer.Deserialize<List<ThePlan>>(jsonSampleData);
}
我的斗争昨天的思考,我认为它实际上与我的JSON,因为,那里在我早期的尝试它看起来是这样的:
{
"_id": "57509afbc6b48d3f33b2dfcd",
...
}
在搞清楚这一切的json的工艺成熟到:
{
"_id": { "$oid": "57509afbc6b48d3f33b2dfcd" },
.....
}
我和BsonSerializer一起出现的问题很可能是我的坏JSON,一旦出现这种情况,我不够聪明,无法返回到BsonSerielizer并重试。
我不知道我知道如何适用?我得到一个JSON文档,我需要补充水分到列表? –
GPGVM
就像序列化到json字符串的方式一样,你反序列化的方法 –
好的......我很早就试过......可能做错了什么。让我再试一次并更新。 – GPGVM