在Mongo DB中将JObject作为C#类的属性存储

4

我有一个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类型编写自定义序列化器吗?

1个回答

2

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


1
是的,但请记住如果你的对象是一个数组则这样做不起作用。 - Sviatoslav V.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接