管理来自web api的json中返回的属性名称

ama*_*eur 20 c# asp.net rest asp.net-web-api

我目前正在使用ASP.NET web api,我从REST操作返回一个Model对象,如下所示:

产品有属性: Name, Id, Description, etc.....

当它转换为JSON对象时,它将使用上面的属性名称输出它.

为了减少从web api操作返回的有效负载,我有什么方法可以更改JSON对象中的属性,例如Descfor Description.我可以更改Model对象,但属性名称没有意义!

Ada*_*amC 25

这样做的简单方法是通过数据合同. 这是一篇文章,但基本上,它涉及模型上的两个注释.它还允许您忽略任何不想序列化的内容.

[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;}

}
Run Code Online (Sandbox Code Playgroud)

  • 您可能还需要添加对System.Runtime.Serialization的引用,默认情况下不会添加该引用.http://stackoverflow.com/questions/7401795/namespace-for-datacontract (4认同)

E.J*_*nan 1

您还可以考虑在 asp.net 端使用http://automapper.org/将完整对象映射到更轻量级的对象。对于一两个小对象来说可能有点大材小用,但如果你有一堆东西要做,这可以节省你一些时间(免费且开源)。