How to configure C# Api to display JSON directly from browser? (but not XML)
本问题已经有最佳答案,请猛点这里访问。
首先,为了澄清这一点,我的C API工作正常。我可以从我的javascript中检索JSON数据。
但是,我很好奇,每当我通过浏览器直接访问我的API时,它会显示:
但是,当我访问其他人(如myjson)托管的JSON时,他们可以直接从浏览器显示JSON:
这是我的代码,
1 2 3 4 5 | public Object Get() { ...// form object from my data return myObject; } |
是否需要配置?
在您的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | protected void Application_Start() { GlobalConfiguration.Configure(ServerConfig.Configure); } void Configure(HttpConfiguration config) { var formatters = config.Formatters; var jsonFormatter = formatters.JsonFormatter; //"text/html" is the default browser request content type jsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); WebApiConfig.Register(config); RegisterDependencies(); } |
首先,您没有指定要使用的框架版本。我想这是WebAPI 2。如果没有,你应该澄清。
在WebAPI 2中,如果控制器返回一个对象,它将被默认的序列化处理程序自动序列化。默认情况下,这个默认的处理程序将返回XML,但如果您请求它,也将返回JSON。您可以通过在HTTP请求接受头中指定来请求JSON版本。您还可以更改代码,使其在默认情况下不再返回XML。
以下代码直接从以下位置复制:如何让ASP.NET Web API返回JSON而不是使用chrome的XML?
I just add the following in App_Start / WebApiConfig.cs class in my
MVC Web API project.
1
2