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中获得这一点,但显然有很多这方面的错误信息。 如:
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?