2009-05-05 342 views
10

創建JSON Web服務的最佳方式是什麼?我們有另一個使用Java的團隊,他們堅持使用JSON完成所有通信。我寧願使用WCF而不是任何第三方框架。wcf json web服務

我發現這個博客:http://www.west-wind.com/weblog/posts/164419.aspx,它表明微軟的實施有缺陷與M $特定的廢話。

+1

您可能需要自己嘗試一下,以確保Rick沒有使用預發佈位。 – 2009-05-05 10:52:24

回答

-4

我結束了使用JayRock。它的夢幻般的技術,只是起作用。如果你沒有正確配置,你不會從這個廢話WCF得到任何NullReferenceExceptions。

+0

我很難理解你爲什麼被拒絕投票7次。看起來你發現你的答案是使用返回JSON的Web服務的最佳方式。 – pqsk 2012-03-07 15:18:47

13

如果您使用WCF和3.5框架,它可能會更容易。當您使用WebGet屬性標記OperationContracts時,只需將ResponseFormat參數設置爲WebMessageFormat.Json即可。當服務以REST方式訪問時,它將使用DataContractJsonSerializer返回數據。

將您希望JSON序列化爲[DataContract]並將每個可序列化成員標記爲[DataMember]的POCO標記非常有用。否則,就像Rick在他的博客文章中指出的那樣,最終會出現時髦的JSON。

+3

所有這一切的很好的例子:http://stackoverflow.com/questions/2086666/wcf-how-do-i-return-clean-json/ – Cheeso 2010-01-18 23:47:23

4

我保持ServiceStack一個成熟的開源替代品WCF,一個現代化的,代碼爲先,模型驅動,WCF更換Web服務框架encouraging code and remote best-practices創建簡潔,乾燥,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開箱即用的端點,自動掛鉤以便根據需要自動插入Content Types

它還包括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); 
}); 
+1

乾杯,我一定會放棄! – Grzenio 2010-08-18 09:03:06

2

什麼是創建JSON Web服務的最佳方式?我們有另一個使用Java的 團隊,他們堅持使用JSON完成所有通信 。我寧願使用WCF而不是任何第三方框架。

下面是一個易於理解的演練,它將帶您完成設置第一個WCF服務的過程,然後將其鏈接到SQL Server數據庫。

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

它採用了微軟的心愛羅斯文 SQL Server數據庫,並展示瞭如何編寫一個簡單的JSON WCF Web服務來讀取和寫入它的數據。

enter image description here

噢,然後將其顯示瞭如何消耗使用JavaScript或iOS應用程序JSON數據。

祝你好運!

+0

這篇文章也幫助了我 - 我對WCF Web服務非常陌生。 – Krondorian 2015-02-11 00:03:01