Return json by default using ASP.NET Web API

是否有可能从ASP.NET Web API而不是XML返回默认的json?


It's what is done by default. JsonMediaTypeFormatter is registered as the first MediaTypeFormatter and if the client doesn't request the response in a specific format, ASP.NET Web API pipeline gives you the response in application/json format.

If what you want is to only support application/json , remove all other formatters and only leave 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);
}

@tugberk's solution doesn't really accomplish the goal of changing the default formatter. It simply makes JSON the only option. If you want to make JSON the default and still support all of the other types, you can do the following:

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);
}

Note: JSON is the default formatter as of Web API 2.0.

链接地址: http://www.djcxy.com/p/20434.html

上一篇: 什么膨胀我的PNG?

下一篇: 使用ASP.NET Web API默认返回json