作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想让我的网络 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/
关于c# - 如何让 WebAPI 默认显示 JSON 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26385474/
我是一名优秀的程序员,十分优秀!