gpt4 book ai didi

c# - 在 ApiController 中返回 BsonDocument

转载 作者:太空狗 更新时间:2023-10-29 17:55:14 25 4
gpt4 key购买 nike

我正在 ASP.NET MVC 4 中开发 API,我使用 MongoDB 作为后端。

由于 MongoDB 存储和返回 BSON 对象,而 MVC4 返回 JSON 对象,我认为在其余调用中简单地返回 BSON 会相当容易。

这没有用,所以我在 BsonDocument 类上找到了 .toJson() 方法,将 BSON 对象转换为 JSON 字符串表示形式。不幸的是,当我通过我的 ApiController 返回这个字符串时,MVC 显然认为它应该将字符串重新序列化为 JSON,浏览器无法解释。

所以我想问问是否有办法为特定的ApiController方法禁用JSON序列化?

我目前的解决方法是在返回之前对从 .toJson() 返回的 JSON 进行反序列化,这样它将再次被序列化,但这似乎相当浪费。

最佳答案

我也遇到了这个问题,我获取了 Bson 数据,遍历它,在 Web API 端将每个文档转换为 json,正如我假设的那样,创建了一个 json 字符串列表 - 我将其发回并反序列化了每个字符串返回 Bson 文档:

List<string> data = response.Content.ReadAsAsync<List<string>>().Result;

List<BsonDocument> docList = new List<BsonDocument>();
foreach (string dataStr in data) {
BsonDocument doc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize<BsonDocument>(dataStr);
docList.Add(doc);
}

我在这篇文章中找到的:Convert string into MongoDB BsonDocument

有点吝啬,但它有效。

关于c# - 在 ApiController 中返回 BsonDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12491265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com