如果要使用JSON样式的小写名称从Web Api中的操作方法返回对象,是否有一种方法来将属性名称进行别名,以便下面的C#对象如下所示。
C#响应模型
public class Account { public int Id { get; set; } public string AccountName { get; set; } public decimal AccountBalance { get; set; } }
我想要返回的JSON
{ "id" : 12,"account-name" : "Primary Checking","account-balance" : 1000 }
解决方法
您可以使用JSON.NET的JsonProperty
public class Account { [JsonProperty(PropertyName="id")] public int Id { get; set; } [JsonProperty(PropertyName="account-name")] public string AccountName { get; set; } [JsonProperty(PropertyName="account-balance")] public decimal AccountBalance { get; set; } }
这只适用于JSON.NET – 显然。如果你想要更不可知,并且有这种类型的命名能够使其他潜在的格式化程序(即你将JSON.NET更改为别的东西,或者将XML序列化),请参考System.Runtime.Serialization并使用:
[DataContract] public class Account { [DataMember(Name="id")] public int Id { get; set; } [DataMember(Name="account-name")] public string AccountName { get; set; } [DataMember(Name="account-balance")] public decimal AccountBalance { get; set; } }