【问题标题】:Separate web service for JSON and XML?JSON 和 XML 的单独 Web 服务?
【发布时间】:2012-03-01 12:23:03
【问题描述】:

我打算用 C# 编写一个 Web 服务,供可能需要 JSON 或 XML 的客户端使用。

我知道 .Net 可以很好地做到这一点,只要你在你的 WebMethod 中返回像这个人对象这样简单的东西

class person
{
    string name
    string age
}

此 Web 服务的目的是充当数据库和客户端之间的一层,我将通过存储过程获取数据,该存储过程将只包含一个表。

我尝试过简单地返回一个数据表,但这与 JSON 不兼容(如果您使用 application/json,则会出现循环引用问题)。在这种情况下,最好的解决方案是创建可以将数据映射到的可序列化类吗?我问的原因是这会很麻烦。

或者,我可以为每个服务创建一个单独的 Web 服务,并编写一些代码来有效地将数据表列名称映射到字段以适应 JSON 并返回字符串。

【问题讨论】:

  • 如果您可以控制通信双方,WCF 数据服务可能会有所帮助。我想我记得看到它同时支持 JSON 和 XML。但是,您将失去对消息格式的控制。

标签: c# .net json web-services soap


【解决方案1】:

最佳实践确实是创建单独的、简单的 UI 对象,这些对象可以传回给客户端。虽然很痛苦,但这将使您的前端服务代码与数据层分离,并允许您在不影响客户端使用的对象的情况下更改数据。

但是,您不需要创建单独的 Web 服务。我相信您可以为同一服务创建 2 个不同的端点,并将它们配置为根据客户端使用的地址(端点)返回 xml/json。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多