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