2009-05-05 46 views
10

Cách tốt nhất để tạo một dịch vụ web JSON là gì? Chúng tôi có một nhóm khác đang sử dụng Java và họ nhấn mạnh để có tất cả các giao tiếp được thực hiện bằng cách sử dụng JSON. Tôi thích sử dụng WCF hơn là bất kỳ khung bên thứ 3 nào.Dịch vụ web wcf json

Tôi tìm thấy blog này: http://www.west-wind.com/weblog/posts/164419.aspx và gợi ý rằng việc triển khai Microsoft thiếu sót với M $ cụ thể.

+1

Bạn có thể muốn tự mình thử để đảm bảo rằng Rick không hoạt động với các bit tiền phát hành. –

Trả lời

-4

Tôi đã sử dụng JayRock. Phần công nghệ tuyệt vời của nó, chỉ hoạt động. Bạn không nhận được bất kỳ NullReferenceExceptions như từ WCF crap này nếu bạn không cấu hình nó một cách chính xác.

+0

Tôi đang gặp khó khăn trong việc hiểu tại sao bạn lại bỏ phiếu bình chọn 7 lần . Dường như bạn thấy rằng bạn đang trả lời bằng cách tốt nhất để làm việc với một dịch vụ web trả về JSON. – pqsk

13

Nếu bạn sử dụng WCF và Khung 3.5, nó không thể dễ dàng hơn. Khi bạn đánh dấu OperationContracts của bạn với thuộc tính WebGet, chỉ cần đặt tham số ResponseFormat thành WebMessageFormat.Json. Khi dịch vụ được truy cập RESTfully, nó sẽ trả về dữ liệu bằng cách sử dụng DataContractJsonSerializer. Nó thực sự hữu ích để đánh dấu các POCO mà bạn muốn JSON serialize thành [DataContract] và đánh dấu mỗi thành viên serializable là [DataMember]. Nếu không, bạn kết thúc với JSON sôi nổi, như Rick đã chỉ ra trong bài đăng trên blog của mình.

+3

ví dụ tốt về tất cả những điều này: http://stackoverflow.com/questions/2086666/wcf-how-do-i-return-clean-json/ – Cheeso

4

Tôi duy trì một thay thế Nguồn mở trưởng thành thành WCF trong ServiceStack, một khung dịch vụ web thay thế WCF hiện đại, mã đầu tiên, mô hình encouraging code and remote best-practices để tạo terse, DRY, high-perfomance, scalable REST web services.

Nó bao gồm .NET's fastest JSON Serializer và có hỗ trợ tự động JSON, JSONP, CORS tiêu đề cũng như biểu mẫu urlencoded/multipart-formdata. Các demo trực tuyến là một khởi đầu tốt để xem xét vì tất cả chúng đều sử dụng Ajax.

Ngoài ra, không có cấu hình XML, hoặc mã-gen và dịch vụ web 'viết một lần' của bạn cung cấp tất cả các thiết bị đầu cuối được bật tự động với các móc để cắm vào Content Types của riêng bạn nếu cần .

Nó cũng bao gồm generic sync/async service clients cung cấp cổng kết nối nhanh, được nhập, máy khách/máy chủ từ đầu đến cuối.

Đây là ví dụ hoàn chỉnh của tất cả các mã cần thiết để tạo ra một dịch vụ web đơn giản, đó là tự động mà không cần bất kỳ cấu hình, đăng ký và công bố trên tất cả các 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 }; 
    } 
} 

Trên dịch vụ có thể được gọi là (mà không cần bất kỳ xây dựng bước/code-gen) trong C# với dòng dưới đây:

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

Và trong jQuery với:

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

Chúc mừng, tôi chắc chắn sẽ cung cấp cho nó một đi! – Grzenio

2

Cách tốt nhất để tạo dịch vụ web JSON là gì? Chúng tôi có một đội khác là đang sử dụng Java và họ đã yêu cầu tất cả thông tin liên lạc được thực hiện bằng JSON. Tôi muốn sử dụng WCF hơn là bất kỳ khung bên thứ 3 .

Dưới đây là hướng dẫn dễ làm theo, sẽ đưa bạn qua quá trình thiết lập dịch vụ WCF đầu tiên của bạn, sau đó liên kết nó với cơ sở dữ liệu SQL Server.

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

Nó sử dụng Northwind cơ sở dữ liệu máy chủ SQL yêu quý của Microsoft, và cho thấy làm thế nào để viết một JSON WCF Web Service đơn giản để đọc và ghi dữ liệu của nó.

enter image description here

Oh, và sau đó nó cho thấy làm thế nào để tiêu thụ dữ liệu JSON sử dụng JavaScript hoặc một ứng dụng iOS.

Chúc may mắn!

+0

bài viết này cũng đã giúp tôi - Tôi rất mới với các dịch vụ web WCF. – Krondorian

Các vấn đề liên quan