Подтвердить что ты не робот

Возврат json по умолчанию с использованием ASP.NET Web API

Возможно ли вернуть json по умолчанию из ASP.NET Web API вместо XML?

4b9b3361

Ответ 1

Это то, что сделано по умолчанию. 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);
}

Ответ 2

Решение @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.