【发布时间】:2018-10-05 22:46:55
【问题描述】:
我需要帮助,我想将 Json 文件中的数据添加到 MongoDb,我使用此代码但它给了我一个错误:“FormatException:无法从 BsonType 'Array' 反序列化 'BsonDocument'。” :( :( this is my code
**static async Task MainAsync()
{
var connectionString = "mongodb://localhost:27017";
var client = new MongoClient(connectionString);
IMongoDatabase database = client.GetDatabase("test");
string json = File.ReadAllText("D:\\Test.json");
//MessageBox.Show(json);
var document = new BsonDocument();
BsonDocument doc = BsonDocument.Parse(json);
document.Add(BsonDocument.Parse(json));
BsonSerializer.Deserialize<BsonDocument>(json);
//BsonDocument document = BsonDocument.Parse(json.ToString());
var collection = database.GetCollection<BsonDocument>("test_collection");
await collection.InsertOneAsync(document);**
这是我用来创建 JSON 文件的代码: public bool WriteJason(DataTable dt, 字符串路径) { 尝试 {
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, string>> rows = new List<Dictionary<string, string>>();
Dictionary<string, string> row = null;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, string>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName.Trim().ToString(), Convert.ToString(dr[col]));
}
rows.Add(row);
}
string jsonstring = serializer.Serialize(rows);
using (var file = new StreamWriter(path, false))
{
file.Write(jsonstring);
file.Close();
file.Dispose();
}
return true;
}
catch { return false; }
}
【问题讨论】:
-
有问题的代码,请。调试图像非常困难。编译器可以做到这一点。此外,您应该提供 JSON 的示例(也在您的问题中)。点击edit button 编辑您的问题。
-
感谢您的建议
-
能否也包含一些示例 JSON?
-
现在我用简单的 json 文件进行测试,我每次都更改文件,因为每次导演给我一个文件来处理它,所以我们没有固定格式的文件,我没有不知道我解释得好不好
-
document.Add(BsonDocument.Parse(json));是干什么用的?