asp.net-mvc - tutorial - instalar asp net mvc
ASP.NET web api que devuelve XML en lugar de JSON (2)
Esta pregunta ya tiene una respuesta aquí:
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.