visual tutorial studio net mvc instalar for existing asp asp.net-mvc asp.net-mvc-4 asp.net-web-api

asp.net-mvc - tutorial - instalar asp net mvc



ASP.NET web api que devuelve XML en lugar de JSON (2)

Leí que, de forma predeterminada, la API web devolverá datos JSON, pero por alguna razón, al crear una API, devuelve XML en lugar de JSON.

public class CurrencyController : ApiController { private CompanyDatabaseContext db = new CompanyDatabaseContext(); // GET api/Currency public IEnumerable<Currency> GetCurrencies() { return db.Currencies.AsEnumerable(); } }

No he modificado nada fuera de lo común, así que estoy perplejo.


Si modifica su WebApiConfig de la siguiente manera, obtendrá JSON de forma predeterminada.

public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml"); config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType); } }


Web Api busca los encabezados de la próxima solicitud para elegir el tipo de datos de retorno. Por ejemplo, si configura Aceptar: aplicación / json , establecerá automáticamente el tipo de retorno en JSON.

Además, la configuración del tipo de contenido le da una pista a la API web sobre el próximo tipo de datos de solicitud. Por lo tanto, si desea publicar datos JSON en la API web, debería tener Content-Type: application / json en el encabezado.