管理从Web API返回的JSON中的属性名称

20

我目前正在使用ASP.NET Web API,从我的REST操作中返回以下模型对象:

产品具有属性:Name,Id,Description等

当将其转换为JSON对象时,它会输出上述属性名称。

为了减少从Web API操作返回的有效负载,是否有任何方法可以更改JSON对象中的属性,例如将Description更改为Desc。我可以更改Model对象,但是属性名称将不再有意义!

2个回答

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

}

1
这正是我需要的,我的需求和原帖作者一样。 - ThisGuyKnowsCode
4
默认情况下没有添加System.Runtime.Serialization引用,您可能还需要添加该引用。https://dev59.com/Jms05IYBdhLWcg3wLO6Q - geon

1
你也可以考虑在 asp.net 上使用 http://automapper.org/ 来将你的完整对象映射到更轻量级的对象。如果只有一个或两个小对象,这可能有些过度设计,但如果你有很多这样的操作,这可以节省你一些时间(而且是免费和开源的)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接