c# - 在 Mongodb 中将 JObject 存储为 C# 类的属性

标签 c# mongodb json.net

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

public JObject Payload {get;set;}

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

"Payload" : { "fieldOne" : "Newtonsoft.Json.Linq.JObject, Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed", "fieldTwo" : { "Person" : { "attributeOne" : "JObject",

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

最佳答案

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

关于c# - 在 Mongodb 中将 JObject 存储为 C# 类的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892955/

相关文章:

c# - 对 asp.net mvc 应用程序的长轮询需要 POST 而不是 GET ajax 方法。为什么?

c# - 如何将具有许多功能的大型 WCF 服务导入到 VS 2010 中?

java - 部署一次脚本用于迁移 MongoDB 中的数据

mongodb - Meteor Cordova 应用程序无法连接到远程 MongoDB

c# - JSON.net反序列化对象嵌套数据

c# - 使用 JSON.net 序列化时忽略接口(interface)中定义的属性

c# - Bullet 中的凹面碰撞检测

c# - 在 C# 中持续运行进程的最佳实践

database-design - 就表示游戏角色和/或 Sprite 而言,最有效的模型是什么?

c# - 如何调用 JsonConvert.DeserializeObject 并通过 [JsonConverter] 禁用应用于基本类型的 JsonConverter?