现在用 JSON 作为数据返回的比较多,但微软这个 Web API 默认是返回 XML 的。
第一步、定义 JSON 类
根据我们需要的数据结构,定义一个类,比如:public class Result
{
public int resultCode { get; set; }
public string resultMessage { get; set; }
}
第二步、Controller 对应方法中,返回的结果改为这个 JSON 类型
为了简便,我们就改造:public IEnumerable Get() 这个方法,改造为如下:public Result Get()
{
return new Result { resultCode = 0, resultMessage = "ok" };
}
第三步、在 WebApiConfig.cs 的 Register 方法中添加如下内容:GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
// 下面这句可省略
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
new System.Net.Http.Formatting.QueryStringMapping("datatype", "json", "application/json"));
先是干掉 XML 格式,再添加 JSON 格式(其实不添加也可以,因为干掉 XML 格式,自动就是 JSON 格式了)。
此时再访问 http://localhost:xxx/api/values/ 输出的就是:{"resultCode":0,"resultMessage":"ok"}
我们并不必生成 JSON 格式的字符串,返回对象即可,.NET 会自动帮我们转换成 JSON 字符串。
如果返回数字,就直接显示为数字;如果返回字符串,就是两端加了引号的字符串。相当于在返回简单类型的时候:没有 {}、没有属性名称、没有冒号,只有值,而值加不加引号,取决于其类型。