【问题标题】:Storing a JObject as a property of a C# class in Mongo DB将 JObject 存储为 Mongodb 中 C# 类的属性
【发布时间】:2017-05-10 12:46:46
【问题描述】:

我有一个 C# 类,我使用默认的 mongo C# 驱动程序作为文档存储在 Mongo DB 中。我在这个类中添加了一个属性,如下:

public JObject Payload {get;set;}

JObject 是 Newtonsoft JSON 库中的一个类型。当它被序列化为 Mongo 时,我得到的文档具有正确的键和结构集,但所有值都是 Newtonsoft 库中类型的名称。例如:

“有效载荷”:{ “fieldOne”:“Newtonsoft.Json.Linq.JObject,Newtonsoft.Json,版本=10.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed”, “字段二”:{ “人” : { "attributeOne" : "JObject",

等等。我怎样才能让这个文档正确保存,而不是值中的类型名称,我有实际值?为 Newtonsoft 类型编写自定义序列化程序是我唯一的办法吗?

【问题讨论】:

    标签: c# mongodb json.net


    【解决方案1】:

    我们将类型从JObject 更改为BsonDocument,并且在设置属性时,我们在对象的字符串表示上使用BsonDocument.Parse。当我们需要重新提取 JSON 值时,我们对属性使用 .ToString() 方法。这似乎有效。

    【讨论】:

    • 是的,但请记住,如果您的对象是数组,这将不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多