ASP.NET MVC – How to Disable JSON Support in Web API

asp.net-mvc-4asp.net-web-api

In the creation of our new MVC Web API-based service, we want to focus on XML to begin with and add JSON functionality later as an enhancement, using the full release with native JSON.NET support. To that end, we want to prevent the service accepting requests or giving responses in JSON to avoid establishing any functionality we are expecting to break.

Is there a way to disable JSON support in the ASP.NET MVC API?

Best Answer

All you have to do is to remove JSON media formatters.

// Identify JSON formatters in global config.
var jsonMediaTypeFormatters = GlobalConfiguration.Configuration.Formatters
    .Where(x => x.SupportedMediaTypes
    .Any(y => y.MediaType.Equals("application/json", StringComparison.InvariantCultureIgnoreCase)))
    .ToList();

// Remove formatters from global config.
foreach (var formatter in jsonMediaTypeFormatters)
{
    GlobalConfiguration.Configuration.Formatters.Remove(formatter);
}
Related Question