2012-05-23 38 views
19

我目前的ASP.NET Web API,我返回Model對象一樣從我的REST操作如下工作:管理屬性名稱以JSON返回從網頁API

產品與性能:Name, Id, Description, etc.....

當這被轉換爲一個JSON對象,它會使用上面的屬性名稱輸出它。

要減少從web api操作返回的有效負載,是否有任何方法可以更改JSON對象中的屬性,例如DescriptionDesc。我可以改變模型對象,但屬性名稱是沒有道理的!

回答

2

您也可以考慮在asp.net端使用http://automapper.org/將您的完整對象映射到更輕量級的對象。對於一兩個小物體可能會過度殺傷,但是如果你有一堆這樣做可以節省你一些時間(免費和開源的引導)。

23

這樣做的簡單方法是通過數據合同。 Here is an article,但基本上,它涉及您的模型上的兩個註釋。它也允許你忽略任何你不想序列化的東西。

[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

這對於我的目的來說是完美的,這與OP的相同。 –

+4

您可能還需要添加對默認情況下未添加的System.Runtime.Serialization的引用。 http://stackoverflow.com/questions/7401795/namespace-for-datacontract – geon