2015-05-15 31 views
1

你能幫我請儘量減少我的Web API路由的響應。如何重命名ASP.Net MVC Web API中的請求/響應對象屬性?

public class Product 
{ 
    public string UniqueId {get;set;} 
    public string Title {get;set;} 
    ... 
} 

public class ProductsController : ApiController 
{ 
    public IEnumerable<Product> GetAllProducts() 
    { 
     return repository.GetAll(); 
    } 
    // .... 
} 

響應包含實體屬性的全名:

[{ 
    UniqueId: 123, 
    Title: 'Book 1' 
},...] 

我想通過使用短別名DTO的屬性,以儘量減少交通和看到這樣的事情:

[{ 
    u: 123, 
    t: 'Book 1' 
},...] 

我想知道是否可以使用特殊屬性重新命名請求/響應中的屬性。 順便說一句我在談論請求,因爲我對POST請求有同樣的問題。

回答

1

嘗試在您的DTO的屬性應用以下屬性:

[JsonProperty(PropertyName = "u")] 
public string UniqueId {get; set;} 

這樣,JSON.NET就知道了序列化或反序列化您的DTO時所使用的名稱。

+0

它的工作原理!謝謝! – Warlock

+0

不客氣。 – elolos

+3

您還可以通過向屬性中添加[DataContract]屬性並將[DataMember(Name =「u」)]屬性添加到屬性中而不使用JSON.NET來執行此操作。 –