我正在序列化对象并以 json 形式从我的 Web 服务返回。但是,我试图从序列化的 json 中省略空属性。有没有办法做到这一点?我正在使用 Web Api MVC 4 测试版。
最佳答案
当前的 ASP.NET Web API(there are plans 将其更改为使用 Json.Net 的最终版本)使用 DataContractJsonSerializer默认情况下序列化 JSON。
因此您可以使用标准的 DataContract/DataMember 属性控制序列化过程。要跳过空属性,您可以设置 EmitDefaultValue为假。
[DataContract]
public class MyObjet
{
[DataMember(EmitDefaultValue = false)]
public string Prop1 { get; set; }
[DataMember(EmitDefaultValue = false)]
public string Prop2 { get; set; }
}
如果您想更好地控制 JSON 响应的序列化方式,您可以使用 WebAPIContrib包含使用 Json.Net 的格式化程序的包或内置 JavaScriptSeralizer .
关于c# - 在 MVC Web Api 4 Beta 中从 Json 中删除空属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150312/