json - 如何禁用内容协商并始终从 WCF 数据服务返回 JSON?

标签 json wcf-data-services atom-feed content-negotiation

假设我有一个 Northwind 数据库,并且使用 ADO.NET 实体数据模型,该模型是从数据库中的表自动生成的。然后我添加一个继承自 DataService 的新 WCF 数据服务。当我启动运行服务的 Web 应用程序时,我可以请求如下数据: http://machine/Northwind.svc/Orders

这将以atom/xml 格式返回订单表中的所有订单。问题是我不需要 XML。我想要 JSON。我想我在应用程序中尝试了各种设置 (web.config) 和属性,但我仍然得到 XML。无论。当我使用 fiddler 并更改请求 header 以接受 JSON 时,我只能获取 JSON。

我不喜欢内容协商的概念。我希望始终以 JSON 格式返回数据。我怎样才能实现这一目标?

请记住,我没有创建任何模型对象,它们是根据数据库表和关系自动创建的。

最佳答案

嗯 - 内容协商是随 HTTP 一起提供的。在任何情况下,您都可以拦截传入请求并添加/覆盖 Accept header 以始终指定 JSON。有一个如何支持 JSONP 的示例,它使用类似的技巧,我认为您应该能够修改它以始终返回 JSON。 http://archive.msdn.microsoft.com/DataServicesJSONP .

关于json - 如何禁用内容协商并始终从 WCF 数据服务返回 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978409/

相关文章:

xml - 为什么人们仍在创建 RSS 提要?

json - 无法使用 JSON 结果将数据呈现到网格列中

json - 如何解析带有注释的 JSON?

javascript - 将 JSON 数组输出到图像网格

Linq 查询错误

c# - 没有使用 XPath 从 Atom XML 文档中选择节点?

java - C 中的 JSON 模式代码生成

azure - Windows Azure 和 WCF 数据服务 V3

entity-framework - EF4 0..1 关系导致错误 2016 : Condition cannot be specified

web - 在 Google 阅读器中显示原子提要的图标