2012-05-23 30 views
19

Tôi hiện đang làm việc với ASP.NET api web nơi tôi trả về một đối tượng mẫu như sau từ hoạt động REST của tôi:quản lý tên tài sản trả lại trong json từ api web

sản phẩm với những đặc tính: Name, Id, Description, etc.....

Khi điều này được chuyển đổi thành một đối tượng JSON, nó xuất ra nó với tên thuộc tính ở trên.

Để giảm tải trọng trả về từ hoạt động api web, có cách nào tôi có thể thay đổi các thuộc tính trong đối tượng JSON như ví dụ Desc cho Description. Tôi có thể thay đổi đối tượng Model nhưng tên thuộc tính sẽ không có ý nghĩa sau đó!

Trả lời

2

Bạn cũng có thể xem xét sử dụng http://automapper.org/ ở phía asp.net để ánh xạ đối tượng đầy đủ của bạn, với các đối tượng nhẹ hơn. Có thể là quá mức cần thiết cho một hoặc hai đối tượng nhỏ, nhưng nếu bạn có một bó để làm điều này có thể giúp bạn tiết kiệm thời gian (mã nguồn mở và miễn phí để khởi động).

23

Cách dễ dàng để thực hiện việc này là thông qua hợp đồng dữ liệu. Here is an article, nhưng về cơ bản, nó liên quan đến hai chú thích trên mô hình của bạn. Nó cũng cho phép bạn bỏ qua bất cứ điều gì bạn không muốn serialized.

[DataContract] 
public class Foo { //Your model class 

    [DataMember(Name="bar-none")] //This also allows you to use chars like '-' 
    public string bar {get; set;} 

    [IgnoreDataMember] //Don't serialize this one 
    public List<string> fuzz { get; set;} 

} 
+1

Điều này hoàn hảo cho mục đích của tôi, giống như OP. –

+4

Bạn cũng có thể cần thêm tham chiếu vào System.Runtime.Serialization không được thêm theo mặc định. http://stackoverflow.com/questions/7401795/namespace-for-datacontract – geon

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