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

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

有帮助吗?

解决方案 4

我最终使用的是 JayRock 。它非常棒的技术,只是有效。如果你没有正确配置它,你就不会从这个垃圾WCF中获得任何NullReferenceExceptions。

其他提示

如果您使用WCF和3.5 Framework,那就不容易了。使用WebGet属性标记OperationContracts时,只需将ResponseFormat参数设置为WebMessageFormat.Json即可。当RESTful访问服务时,它将使用DataContractJsonSerializer返回数据。

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

我在 ServiceStack 中维护了一个成熟的开源替代WCF,这是一个现代的,代码优先的模型 - 驱动,WCF替代Web服务框架鼓励代码和远程最佳实践,用于创建简洁,干燥,高性能,可扩展的REST Web服务

它包括 .NET最快的JSON序列化程序并具有自动支持JSON,JSONP , CORS 标头以及form-urlencoded / multipart-formdata。在线演示是一个很好的开始,因为他们都使用Ajax。

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

它还包括通用同步/异步服务客户端,提供快速,打字,客户端/服务器通信网关端到端。

这是创建简单Web服务所需的所有代码的完整示例,它自动没有任何配置,已在所有预定义和自定义REST-ful路线上的网络数据格式

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); 
});
  

创建JSON Web服务的最佳方法是什么?我们有另一个   正在使用Java的团队,他们坚持要进行所有沟通   使用JSON完成。我宁愿使用WCF而不是任何第三方   框架。

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

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

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

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

祝你好运!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top