c# - 在 MVC Web Api 4 Beta 中从 Json 中删除空属性

标签 c# asp.net-mvc json asp.net-web-api

我正在序列化对象并以 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/

相关文章:

c# - 本文档VS2015还没有加载任何符号

c# - 存储/获取信息客户端的最佳方式

c# - 当我运行解决方案时,它打开的不是 mvc 中的默认页面

javascript - $.ajax() 打印一组未打印的 jsonObjects

c# - 为什么与 IIS 相比,Visual Studio 调试中的 HashTable 顺序不同

c# - 我可以让 WebApi 与 IoC Aspects/Interceptor 一起工作吗

c# - 在数据传输对象中包含相关实体

asp.net - 如何判断 Application_Error 中的请求/响应是否可用?

json - 如何过滤 JSON 数据解析器

json - 在Grails 2.4.0中将对象呈现为json时排除属性