我如何告诉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"));
}

我如何告诉WebAPI在默认情况下显示JSON结果

我认为当所有其他都相等时,默认值是列表中的第一个。

你试过吗:

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/

相关文章: