从ASP.NET Web API返回JSON格式

时间:2013-09-17 09:48:25

标签: asp.net-mvc web-services rest asp.net-web-api

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

我尝试过:

  1. 我有特定的接受标题:Accept: application/jsonUse accept header

  2. 在Application_Start方法

    上删除了XML格式化程序

    var formatters = GlobalConfiguration.Configuration.Formatters;

    formatters.Remove(formatters.XmlFormatter);

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

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

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

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

    请提供您的建议。

2 个答案:

答案 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以获取其他方法,并查看它们是否也适合您。