我知道这个问题已被多次讨论,但对我来说,这些解决方案并不奏效。我想从我的ASP.NET Web API返回JSON数据。我正在使用Firefox REST客户端插件达到终点。
我尝试过:
我有特定的接受标题:Accept: application/json
。 Use accept header
在Application_Start方法
上删除了XML格式化程序var formatters = GlobalConfiguration.Configuration.Formatters;
formatters.Remove(formatters.XmlFormatter);
这就是我最后返回数据的方式
return myModel.OrderBy(d => d.SortOrder);
myModel只是一个公共属性很少的类。我没有用任何属性来装饰这个类或它的属性。
但这两种方法都不起作用。我仍然以XML格式获取数据:(
请提供您的建议。
答案 0 :(得分:1)
我想向您介绍http://www.servicestack.net/
这是与.net。
挂钩的其他API框架它可以满足您的一切需求。 https://docs.google.com/presentation/d/16ey0MrpHOSz5N5sjctAliOgYWO3ZYeJe070fLZlPdrE/present#slide=id.i27
答案 1 :(得分:0)
FROM COMMENT
检查application/json
标头是否是第一个标头,并且具有q=1
质量属性:"application/json;q=1"
。
您可以在specs中详细了解质量属性。基本上,它们是客户端在返回的数据类型上提供首选项系统的一种方式。
要回答你的另一个问题(当我在代码中明确删除了XML格式时,为什么我要以XML格式获取数据?),我只能猜到发生了什么:要么标头未正确设置或客户端将其他标头默认为不同的质量值。
另一个猜测可能是您删除格式化程序的方法是错误的:您可以检查此answer on SO或此article以获取其他方法,并查看它们是否也适合您。