-1

我知道这个问题已被讨论过很多次,但对我来说这些解决方案不起作用。我想从我的 ASP.NET Web API 返回 JSON 数据。我正在使用 Firefox REST 客户端插件达到终点。

我试过的:

  1. 我有特定的接受标头:Accept: application/json使用接受标头

  2. 删除了 Application_Start 方法上的 XML 格式化程序

    var formatters = GlobalConfiguration.Configuration.Formatters;

    formatters.Remove(formatters.XmlFormatter);

这就是我最后返回数据的方式

 return myModel.OrderBy(d => d.SortOrder);

myModel 只是一个公共财产很少的类。我没有用任何属性装饰这个类或其属性。

但这两种方法都不起作用。我仍在获取 XML 格式的数据:(

请提供您的建议。

4

2 回答 2

1

我想向您介绍http://www.servicestack.net/

这是与 .net 挂钩的 REST API 框架。

它可以满足您的一切需求。 https://docs.google.com/presentation/d/16ey0MrpHOSz5N5sjctAliOgYWO3ZYeJe070fLZlPdrE/present#slide=id.i27

于 2013-09-17T10:28:58.503 回答
0

来自评论

检查application/json标头是否是第一个标头并具有q=1质量属性:"application/json;q=1"

您可以在规范中阅读有关质量属性的更多信息。基本上,它们是客户在返回的数据类型上提供偏好系统的一种方式。

要回答您的另一个问题(当我在代码中明确删除 XML 格式时,为什么我要以 XML 格式获取数据?),我只能猜测发生了什么:标头设置不正确或客户端是将另一个标头默认为不同的质量值。

另一个猜测可能是您删除格式化程序的方式是错误的:您可以在 SO本文上查看此答案以获取替代方法,看看它们是否也为您解决问题。

于 2013-09-17T11:24:07.907 回答