【发布时间】:2020-04-20 14:49:18
【问题描述】:
我正在尝试将一些 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 中,如果 Value 属性不是诸如 string、bool 等基本类型的值,则该属性将被反序列化为 JObject。
将其存储到 MongoDB 将导致 Value 属性被保存为 JObject。我只想将其存储为 value 属性的原始 json 结构。
从JObject 到BsonDocument 有多种方法。例如var doc = BsonDocument.Parse(jobj.ToString());。
但在这种情况下,我将不得不遍历我的对象结构并手动执行此操作。
(我的真实结构也比较复杂)
我现在在想可能有更好的方法来处理这个问题? 例如以某种方式将某种转换器附加到 value 属性,以便 Mongo 驱动程序知道如何将其转换为正确的 Bson。
我在这里有什么选择? 我认为它需要以某种方式在 Bson 序列化程序端完成?
【问题讨论】:
标签: c# mongodb json.net mongodb-.net-driver