使用C#将mongodb bson转换为json并包含NumberLong

3
我有一个动态的mongoDB bson文档,我想将其反序列化为c#字典对象。 bson文档包含LongNumber类型,我遇到了问题。
var json = entity.BsonValue.ToJson();
JsonConvert.DeserializeObject<Dictionary<string, object>>(json);

这是我尝试运行和转换的bson示例代码。 看起来我无法处理NumberLong(""),因为json表现不同。 Bson字段是动态的,可以包含任何内容,这就是为什么它是对象的字典。 有没有办法使其反序列化,也许添加jsonWriterSettings并如何添加?
2个回答

8

我发现简单地使用new JsonWriterSettings { OutputMode = JsonOutputMode.Strict }即可对长数字进行处理。


为了更加清晰明了,新代码将如下所示:var json = entity.BsonValue.ToJson(new MongoDB.Bson.IO.JsonWriterSettings { OutputMode = MongoDB.Bson.IO.JsonOutputMode.Strict }); JsonConvert.DeserializeObject>(json); - minimalist_zero

0
var json = entity.BsonValue.ToJson(new JsonWriterSettings { OutputMode = JsonOutputMode.RelaxedExtendedJson });
JsonConvert.DeserializeObject<Dictionary<string, object>>(json);

宽松模式:宽松表示法会丢失 BSON 数字类型的类型信息,并使用更易读的 BSON 日期表示法。请参阅扩展 JSON 规范以了解此模式的描述。


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