wcf json 网络服务

Posted

技术标签:

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

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

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

【问题讨论】:

您可能想自己尝试一下,以确保 Rick 没有使用预发布版本。 【参考方案1】:

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

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

【讨论】:

这一切的好例子:***.com/questions/2086666/…【参考方案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 服务来读取和写入它的数据。

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

祝你好运!

【讨论】:

这篇文章对我也有帮助 - 我对 WCF Web 服务非常陌生。

以上是关于wcf json 网络服务的主要内容,如果未能解决你的问题,请参考以下文章

WCF Web 服务返回 json 格式数据

如何以 JSON 形式返回 WCF 服务 POST 响应

WCF 数据服务 5.0 版和 Json

wcf 数据服务是不是可以返回 json 格式的元数据?

从 WCF 服务返回的 JSON 数据包含转义字符

将 JSON 数组传递给 WCF Web 服务