Web Api和JSON?

我正在使用MVC 4的Web API,我对默认格式有点困惑。 我希望API数据是JSON。 但是,它将以XML格式返回。 根据http://www.asp.net/web-api/videos/getting-started/your-first-web-api上的MVC 4入门视频,它默认应该是JSON。 但是当我创建一个新的Web Api项目并运行示例时,我得到了以下结果:

<ArrayOfstring><string>value1</string><string>value2</string></ArrayOfstring>

我一直在围绕着试图在JSON中获得这一点,但显然有很多这方面的错误信息。 如:

  • 如果我将“application / json”添加到内容类型头文件中,它应该返回JSON。 这不起作用,但我怀疑我没有标题变量名称正确,因为我没有找到确切的名称使用。 我在请求头文件中尝试过“Content-Type”和“contentType”,但没有运气。 另外,我希望默认使用JSON,而不是根据标题信息。
  • 如果我创建一个JsonFormatter并将其添加到Application_Start GlobalConfiguration.Configuration.Formatters.Insert(0, new JsonNetFormatter(serializerSettings)); 它应该做的伎俩。 但我收集了这个贬值,因为没有任何的例子正在工作。
  • 我能做些什么,最简单的方法是默认情况下以JSON格式输出数据?


    将此添加到GLOBAL.ASAX以获取应用程序/ json

    GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
    

    所以它应该在上下文中看起来像这样:

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
    
        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    
        BundleTable.Bundles.RegisterTemplateBundles();
        GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
    }
    

    或者,如果您需要将XML保存为媒体类型,则可以编辑App_Start / WebApiConfig.cs

    config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html") );
    

    这使得JSON成为Web浏览器的默认响应,但返回text / html

    资源


    我希望API数据是JSON。 但是,它将以XML格式返回

    你如何访问你的webapi? 您是否使用Chrome访问您的webapi服务(正如Nick在评论中提到的那样)? Chrome将Accept头文件application / xml添加到请求中...

    如果我将“application / json”添加到内容类型头文件中,它应该返回JSON

    尝试设置'接受'标题。

    如果我创建一个JsonFormatter并将其添加到Application_Start GlobalConfiguration.Configuration.Formatters.Insert(0,new JsonNetFormatter(serializerSettings)); 它应该做的伎俩。 但我收集了这个贬值,因为没有任何的例子正在工作。

    如果请求的accept头是application / xml,则内容协商仍然会选择XmlMediaTypeFormatter并返回application / xml。 还有一件事,JSON的格式化程序叫做JsonMediaTypeFormatter,它已经在Formatters集合的0位置。


    如果您只想要JSON,请清除所有默认设置的格式化程序集合,然后只添加JSON文件。

    链接地址: http://www.djcxy.com/p/20431.html

    上一篇: Web Api and JSON?

    下一篇: Return JSON file with ASP.NET Web API