gpt4 book ai didi

c# - 如何让 WebAPI 默认显示 JSON 结果?

转载 作者:太空狗 更新时间:2023-10-30 01:35:17 24 4
gpt4 key购买 nike

我想让我的网络 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com