Mongodb Web API返回XML和Json,只需要Json
您好,我正在尝试创建web api,我可以调用它来查看MongoDB中的所有文档,现在文档非常大并且嵌套很多,我已经设法返回了文档,但是是Json格式的,头是XML格式的 我需要用Json返回整个东西 此代码接受BsonDocument产品并将其作为Json返回,因为如果没有此代码,我将得到一个错误:Mongodb Web API返回XML和Json,只需要Json,mongodb,asp.net-mvc-4,mongodb-.net-driver,Mongodb,Asp.net Mvc 4,Mongodb .net Driver,您好,我正在尝试创建web api,我可以调用它来查看MongoDB中的所有文档,现在文档非常大并且嵌套很多,我已经设法返回了文档,但是是Json格式的,头是XML格式的 我需要用Json返回整个东西 此代码接受BsonDocument产品并将其作为Json返回,因为如果没有此代码,我将得到一个错误: [JsonIgnore] public BsonDocument Product { get; set; } [DataMember] public string
[JsonIgnore]
public BsonDocument Product { get; set; }
[DataMember]
public string Product
{
get { return Product .ToJson(); }
set { Product = BsonDocument.Parse(value); }
}
以下是文档示例(这是一个基本示例,实际文档更大,层次更深:
{
"product": {
"Type": "Phone",
"Size": {
"Height": 10,
"Lenght": 5,
"Weight": 30
}
"Make": "Apple"
"Model": {
"Name": "IPhone",
"Range": "4s"
}
}
}
它返回为
<Product>
{"product": {"Type": "Phone","Size": {"Height": 10,"Lenght": 5,"Weight": 30}"Make": "Apple", "Model": {"Name": "IPhone","Range": "4s"}}}
</Product>
{“产品”:{“型号”:“手机”,“尺寸”:{“高度”:10,“长度”:5,“重量”:30}“制造”:“苹果”,“型号”:{“名称”:“IPhone”,“系列”:“4s”}}
我该如何解决这个问题
我该如何解决这个问题
像这样:
public HttpResponseMessage Get()
{
MyViewModel model = ...
// This will contain the JSON you want to return to the client
string product = model.Product;
var response = new HttpResponseMessage();
response.Content = new StringContent(product, Encoding.UTF8, "application/json");
return response;
}
感谢您的快速响应,我是否将其放在我的产品类中,其中包含我问题中的第一段代码?不,您将其放在Web API控制器操作中,该操作用于提供此JSON。我明白了,那么MyViewModel将是什么?我不知道。这取决于您。重要的是要有一些包含JSON的字符串属性如我的回答所示,您将传递给
StringContent
构造函数。这完全是您的事情。谢谢,伙计!!非常有用!