默认情况下是否可以从 ASP.NET Web API 而不是 XML 返回 json?
问问题
10557 次
2 回答
18
这是默认完成的。JsonMediaTypeFormatter
注册为第一个MediaTypeFormatter
,如果客户端未请求特定格式的响应,ASP.NET Web API 管道会为您提供application/json
格式响应。
如果您只想支持application/json
,请删除所有其他格式化程序并仅离开JsonMediaTypeFormatter
:
public static void Configure(HttpConfiguration config) {
var jqueryFormatter = config.Formatters.FirstOrDefault(x => x.GetType() == typeof(JQueryMvcFormUrlEncodedFormatter));
config.Formatters.Remove(config.Formatters.XmlFormatter);
config.Formatters.Remove(config.Formatters.FormUrlEncodedFormatter);
config.Formatters.Remove(jqueryFormatter);
}
于 2012-12-01T18:08:18.803 回答
8
@tugberk 的解决方案并没有真正实现更改默认格式化程序的目标。它只是让 JSON 成为唯一的选择。如果您想将 JSON 设为默认值并仍支持所有其他类型,则可以执行以下操作:
public static void Configure(HttpConfiguration config) {
// move the JSON formatter to the front of the line
var jsonFormatter = config.Formatters.JsonFormatter;
config.Formatters.Remove(jsonFormatter);
config.Formatters.Insert(0, jsonFormatter);
}
注意:JSON 是 Web API 2.0 的默认格式化程序。
于 2014-05-15T19:27:00.540 回答