我如何告诉WebAPI在默认情况下显示JSON结果
本文关键字:情况下 显示 JSON 结果 默认 何告诉 WebAPI | 更新日期: 2023-09-27 18:26:33
我想让我的web API默认返回JSON。
但是,我仍然需要能够支持XML格式。
当我执行以下操作时,它会返回JSON:
public static void Register(HttpConfiguration config)
{
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
}
当我执行以下操作时,它会返回XML(如果我有JSON=true参数,则返回JSON)
public static void Register(HttpConfiguration config)
{
config.Formatters.Clear();
config.Formatters.Add(new XmlMediaTypeFormatter());
config.Formatters.Add(new JsonMediaTypeFormatter());
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));
}
当我这样做时,它会一直返回XML。参数是否。。
我想要没有参数的JSON,指定参数时使用XML。
public static void Register(HttpConfiguration config)
{
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
config.Formatters.Add(new XmlMediaTypeFormatter());
GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(new QueryStringMapping("xml", "true", "application/xml"));
}
我认为当所有其他都相等时,默认值是列表中的第一个。
你试过吗:
public static void Register(HttpConfiguration config)
{
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
config.Formatters.Add(new XmlMediaTypeFormatter());
}
或者,您可以专门定义内容协商策略。关于它如何在Web API中工作的详细信息如下:http://www.asp.net/web-api/overview/formats-and-model-binding/content-negotiation
示例实现如下:http://www.strathweb.com/2013/06/supporting-only-json-in-asp-net-web-api-the-right-way/