【问题标题】:wcf json web servicewcf json 网络服务
【发布时间】:2010-10-23 21:14:56
【问题描述】:

创建 JSON Web 服务的最佳方式是什么?我们有另一个使用 Java 的团队,他们坚持使用 JSON 完成所有通信。我更喜欢使用 WCF 而不是任何 3rd 方框架。

我发现了这个博客:http://www.west-wind.com/weblog/posts/164419.aspx,它表明 Microsoft 的实现存在缺陷,带有特定于 M$ 的废话。

【问题讨论】:

  • 您可能想自己尝试一下,以确保 Rick 没有使用预发布版本。

标签: c# .net wcf json


【解决方案1】:

如果您使用 WCF 和 3.5 框架,那就再简单不过了。当您使用 WebGet 属性标记 OperationContracts 时,只需将 ResponseFormat 参数设置为 WebMessageFormat.Json。当服务以 REST 方式访问时,它将使用 DataContractJsonSerializer 返回数据。

将要 JSON 序列化的 POCO 标记为 [DataContract] 并将每个可序列化成员标记为 [DataMember] 非常有帮助。否则,您最终会得到时髦的 JSON,正如 Rick 在他的博客文章中指出的那样。

【讨论】:

【解决方案2】:

我最终使用了JayRock。它是一项出色的技术,可以正常工作。如果你没有正确配置它,你不会从这个废话 WCF 中得到任何 NullReferenceExceptions。

【讨论】:

  • 我很难理解为什么你被 7 次否决了。看来您找到了使用返回 JSON 的 Web 服务的最佳方式。
【解决方案3】:

我在ServiceStack 中维护了一个成熟的开源替代 WCF,这是一个现代、代码优先、模型驱动、WCF 替代 Web 服务框架encouraging code and remote best-practices,用于创建简洁、DRY、high-perfomance, scalable REST web services

它包括.NET's fastest JSON Serializer 并自动支持 JSON、JSONP、CORS 标头以及 form-urlencoded/multipart-formdata。在线演示是一个很好的开始,因为它们都使用 Ajax。

此外,没有 XML 配置或代码生成,您的“一次性编写”C# Web 服务提供所有开箱即用的 JSON, XML, SOAP, JSV, CSV, HTML 端点,自动使用挂钩插入您自己的 @987654327 @如果需要。

它还包括generic sync/async service clients,提供了一个快速、有类型的客户端/服务器端对端通信网关。

这是创建简单 Web 服务所需的所有代码的完整示例,无需任何配置即可自动注册并在所有 web data formats on pre-defined and custom REST-ful routes 上提供:

public class Hello {
    public string Name { get; set; }
}

public class HelloResponse {
    public string Result { get; set; }
}

public class HelloService : IService<Hello> {
    public object Execute(Hello request)
    {
        return new HelloResponse { Result = "Hello, " + request.Name };
    }
}

可以在 C# 中调用以上服务(无需任何构建步骤/代码生成),使用以下行:

var client = new JsonServiceClient(baseUrl);
var response = client.Send<HelloResponse>(new Hello { Name = "World!" });
Console.WriteLine(response.Result); // => Hello, World

在 jQuery 中使用:

$.getJSON('hello/World!', function(r){ 
    alert(r.Result); 
});

【讨论】:

  • 干杯,我一定会试一试的!
【解决方案4】:

创建 JSON Web 服务的最佳方式是什么?我们还有一个 使用 Java 的团队,他们坚持进行所有沟通 使用 JSON 完成。我更喜欢使用 WCF 而不是任何第 3 方 框架。

这是一个易于理解的演练,它将引导您完成设置您的第一个 WCF 服务,然后将其链接到 SQL Server 数据库的过程。

http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm

它使用了微软钟爱的Northwind SQL Server 数据库,并展示了如何编写一个简单的 JSON WCF Web 服务来读取和写入它的数据。

哦,然后它展示了如何使用 JavaScript 或 iOS 应用程序使用 JSON 数据。

祝你好运!

【讨论】:

  • 这篇文章对我也有帮助 - 我对 WCF Web 服务非常陌生。
猜你喜欢
  • 2015-02-11
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多