我目前正在使用 ASP.NET web api,在其中我从 REST 操作返回一个 Model 对象,如下所示:
产品特性:Name, Id, Description, etc.....
当 this 转换为JSON
对象时,它会使用上面的属性名称输出它。
为了减少从 web api 操作返回的有效负载,有什么方法可以更改 JSON 对象中的属性,例如Desc
for Description
. 我可以更改 Model 对象,但属性名称没有意义!
我目前正在使用 ASP.NET web api,在其中我从 REST 操作返回一个 Model 对象,如下所示:
产品特性:Name, Id, Description, etc.....
当 this 转换为JSON
对象时,它会使用上面的属性名称输出它。
为了减少从 web api 操作返回的有效负载,有什么方法可以更改 JSON 对象中的属性,例如Desc
for Description
. 我可以更改 Model 对象,但属性名称没有意义!
做到这一点的简单方法是通过数据合同。 这是一篇文章,但基本上,它涉及模型上的两个注释。它还允许您忽略任何您不想序列化的内容。
[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;}
}
您还可以考虑在 asp.net 端使用http://automapper.org/将您的完整对象映射到更轻量级的对象。对于一两个小对象来说可能有点过分了,但如果你有一堆东西要做,这可以为你节省一些时间(免费和开源启动)。