.NET MVC 方式实现 Web API-返回 JSON 格式

作者:vkvi 来源:ITPOW(原创) 日期:2017-4-19

现在用 JSON 作为数据返回的比较多,但 Get 时,微软这个 Web API 默认是返回 XML 的。

第一步、定义 JSON 类

根据我们需要的数据结构,定义一个类,比如:

public class Result
{
	public int resultCode { get; set; }
	public string resultMessage { get; set; }
}

第二步、Controller 对应方法中,返回的结果改为这个 JSON 类型

为了简便,我们就改造:public IEnumerable<string> 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 字符串。

如果返回数字,就直接显示为数字;如果返回字符串,就是两端加了引号的字符串。相当于在返回简单类型的时候:没有 {}、没有属性名称、没有冒号,只有值,而值加不加引号,取决于其类型。

相关阅读

相关文章