Alberto Tébar Asked: 2020-12-25 15:04:37 +0800 CST 2020-12-25 15:04:37 +0800 CST 2020-12-25 15:04:37 +0800 CST 如何让我的 ASP.NET Web Api 页面使用 chrome 返回 JSON 而不是 XML? 772 在Chrome中使用新的ASP.NET Web API我看到了XML。 如何更改它以返回JSON,以便我可以在浏览器中看到它。 我认为这只是请求标头的一部分,对吗? 原始问题:如何让 ASP.NET Web API 使用 Chrome 返回 JSON 而不是 XML? json 3 Answers Voted JosEduSol 2020-12-25T16:44:24+08:002020-12-25T16:44:24+08:00 这取决于浏览器,例如 Internet Explorer 的默认格式是 JSON,但正如您在 Chrome 中注意到的那样,默认格式是 XML。 一种可能的解决方案是使用Postman(Chrome 扩展)或Fiddler之类的工具并配置标头: Accept: application/json 以 JSON 格式接收响应。 例如,在邮递员中: Best Answer Abraham Duran 2020-12-31T11:50:34+08:002020-12-31T11:50:34+08:00 好吧,这就像你有一个水杯架,你想喝水,你的选择很多。 我认为最好的事情是你坚持一个标准作为答案,这遵循稳健性原则(Postel 定律): 在你做/发送的事情上要保守,在你从别人那里接受的事情上要自由。 来源 1(英语)和来源 2(西班牙语) 基于此,我认为建议您决定从您的 API 发送格式并且您的客户端(无论 API 使用什么,都可以处理它)。如果您想发送多种格式,那很好,但是您通过标头通知您的客户端将告诉您它接受哪个版本的响应,正如JosEduSol所说。 您可以实现此目的的其他方法如下: 添加默认 JSON 响应。 将以下内容添加到WebApiConfig.cs config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); 删除 XML 响应。 这是我的首选方式 config.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); 然后你可以使用你返回的 JSON,比如决定它是 CamelCase 还是缩进,例如: config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 注意:Postel 定律更适用于你返回的内容而不是它的格式,也就是说,如果你返回 a animal,它总是返回 a animal,而不是动物数组,更不用说 a 了persona,虽然我明白成为显式地使用您的应用程序返回的格式,以便您的客户确切地知道会发生什么。 lazarokcf 2020-01-07T09:46:03+08:002020-01-07T09:46:03+08:00 ASP.NET WEB API,默认返回 XML 为了使响应为 JSON 格式,文件App_Start \ WebApiConfig.cs被编辑。 在此文件中,在Register中,添加以下代码作为第一行代码: config.Formatters.Remove(config.Formatters.XmlFormatter);
这取决于浏览器,例如 Internet Explorer 的默认格式是 JSON,但正如您在 Chrome 中注意到的那样,默认格式是 XML。
一种可能的解决方案是使用Postman(Chrome 扩展)或Fiddler之类的工具并配置标头:
以 JSON 格式接收响应。
例如,在邮递员中:
好吧,这就像你有一个水杯架,你想喝水,你的选择很多。
我认为最好的事情是你坚持一个标准作为答案,这遵循稳健性原则(Postel 定律):
来源 1(英语)和来源 2(西班牙语)
基于此,我认为建议您决定从您的 API 发送格式并且您的客户端(无论 API 使用什么,都可以处理它)。如果您想发送多种格式,那很好,但是您通过标头通知您的客户端将告诉您它接受哪个版本的响应,正如JosEduSol所说。
您可以实现此目的的其他方法如下:
添加默认 JSON 响应。 将以下内容添加到
WebApiConfig.cs
删除 XML 响应。 这是我的首选方式
然后你可以使用你返回的 JSON,比如决定它是 CamelCase 还是缩进,例如:
注意:Postel 定律更适用于你返回的内容而不是它的格式,也就是说,如果你返回 a
animal
,它总是返回 aanimal
,而不是动物数组,更不用说 a 了persona
,虽然我明白成为显式地使用您的应用程序返回的格式,以便您的客户确切地知道会发生什么。ASP.NET WEB API,默认返回 XML
为了使响应为 JSON 格式,文件App_Start \ WebApiConfig.cs被编辑。 在此文件中,在Register中,添加以下代码作为第一行代码: