【发布时间】:2016-01-07 00:13:50
【问题描述】:
作为this question 的后续行动,我无法弄清楚如何从 JSON 输入中的所有字段名称中删除句点。
我正在将 XML 转换为 JSON 并创建一个 BsonDocument 以使用 Newtonsoft 库插入到 MongoDB 数据库中,如下所示:
XmlDocument doc = new XmlDocument();
doc.Load(filePath);
String jsonText = JsonConvert.SerializeXmlNode(doc);
BsonDocument = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(jsonText);
我不能插入它,因为元素名称包含句点,我会得到一个序列化异常。如何通过 JSON 字符串或 BsonDocument 进行处理以更改它们?
我已经成功地递归地遍历了我的文档:
private void Print(BsonDocument document)
{
foreach (BsonElement element in document)
{
Console.WriteLine(element.Name);
if (element.Value.IsBsonDocument)
{
Print(element.Value.AsBsonDocument);
}
else if (element.Value.IsBsonArray)
{
var array = element.Value.AsBsonArray;
foreach (BsonDocument doc in array)
{
Print(doc);
}
}
}
}
但是,BsonDocument.Name 不是我可以设置的字段,只能获取。如何更新 BsonDocument 或 JSON 字符串以删除无效字段名称?
【问题讨论】: