我正在尝试将一些Json.NET的JSON序列化与MongoDB结合使用。 我的数据结构类似于这个:
public class Master {
...props...
public Detail[] Details {get;set;}
}
public class Detail {
...props...
public dynamic Value {get;set;}
}
在这种情况下,我希望
Detail
的Value
属性包含动态JSON。没有架构,我只想存储其中的任何内容。
如果我通过Asp.NET接收到此结构,则如果值不是诸如string
,bool等基元,则将反序列化Value属性为JObject
。
将其存储到MongoDB中将导致Value属性被保存为JObject
。我只想将其存储为值属性的原始JSON结构。
有一些方法可以从JObject
转换为BsonDocument
。例如var doc = BsonDocument.Parse(jobj.ToString());
。
但在这种情况下,我必须遍历我的对象结构并手动执行此操作。
(我的实际结构也更加复杂)
现在我正在考虑可能有更好的方法来处理这个问题?
例如,以某种方式附加一个转换器到值属性,以便Mongo驱动程序知道如何将其转换为适当的Bson。
我在这里有哪些选择?
我认为它需要在Bson序列化程序端完成一些工作?