web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍一种方法
1.先创建一个实体类
public partial class TBook
{
public int Id { get; set; }
public string Bookname { get; set; }
public DateTime DateTime { get; set; }
public string CreatName { get; set; }
}
2.然后创建上下文类
3.编写一个返回数据的返回类APIModle
任何接口都应该返回int status、object data、string msg这三个共同的属性。前端根据状态值做不同的业务逻辑,msg用于在一些情况直接展示接口返回的文本进行提示而不必在前端写死。所以,我们需要要定义一个类,所有接口的数据都必须是这个类。
public class ApiModel
{
//业务状态 可以是 1.成功 2.失败等等
public int status { get; set; }
//业务数据
public object data { get; set; }
//提示信息
public String msg { get; set; }
}
4.然后我们写一个测试数据的接口
[HttpGet]
public ApiModel Get()
{
var list = VipContext.TBooks.ToList();
return new ApiModel()
{
status = 1,
//转换为json数据格式
data = JsonConvert.SerializeObject(list),
//不转换json数据格式
//data = list,
msg ="查询成功"
};
}
这里有一个坑 如果你转换Json数据格式的话反而得到一个不太好得数据形式 下面大家看看这两种情况对比
这是转换json格式的
为什么会是个字符串,这是因为我们多余的为对象进行序列化导致的!
这是没转换的
所以我们要用要采用正确的方式