【发布时间】:2016-06-26 12:21:50
【问题描述】:
在一个 WebAPI 项目中,我有一个控制器,它根据用户输入的值检查产品的状态。
假设他们输入“123”,响应应该是“状态”:1,以及产品列表。如果他们输入“321”,则“状态”为 0,并且是产品列表。
我的问题是,如何在 WebAPI 控制器中正确构建这样的字符串。
[Route("{value:int}")]
public string GetProducts(int value)
{
var json = "";
var products = db.Products;
if (products.Any())
{
foreach (var s in products)
{
ProductApi product = new ProductApi();
product.Name = s.Name;
json += JsonConvert.SerializeObject(supplier);
}
}
var status = db.Status;
if (status.Any())
{
json += "{status:1}";
}
else
{
json += "{status:0}";
}
return json;
}
public class ProductApi
{
public string Name { get; set; }
}
另外,这个输出/响应是否被认为是有效的?
[
{
"id":1,
"name":"product name"
},
{
"id":2,
"name":"product name 2"
},
{
"id":3,
"name":"product name 3"
}
]
{
"status": 0
}
【问题讨论】:
-
你不应该自己创建json,你可以从这个方法返回一个对象,并将json作为返回数据的默认格式。
-
你能根据上面的代码做一个例子吗?
-
JObect 也是一个很棒的工具:newtonsoft.com/json/help/html/CreatingLINQtoJSON.htm
标签: c# json asp.net-web-api asp.net-web-api2