我序列化对象,并返回从我的web服务的JSON。不过,我试图从序列化的json中省略null属性。有没有办法做到这一点?我正在使用Web Api MVC 4测试版。从Json的MVC中的网络API删除空子属性4测试版
14
A
回答
15
当前的ASP.NET Web API(there are plans将其更改为最终版本以使用Json.Net)默认情况下使用DataContractJsonSerializer来序列化JSON。
因此,您可以使用标准DataContract/DataMember属性控制序列化过程。要跳过空属性,您可以将EmitDefaultValue设置为false。
[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格式化其中包含了更多的控制。
9
在Json.Net中,您可以使用JsonPropertyAttribute和NullValueHandling = NullValueHandling.Ignore。看起来这里没有办法为整个班级做到这一点,只有每个班级领域/财产的明确性。
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string SometimesNull { get; set; }
仅供参考。有a reasons为什么Json.Net默认序列化具有空值的属性。看一看,可能有一些适用于您的案例的原因。
相关问题
- 1. Rete网络没有测试版网络?
- 2. 删除JSON属性
- 3. 网络API单元测试
- 4. 删除“API”从网络API网址前缀
- 5. 测试JSON项目中的属性是否为空?
- 6. TinyMCE的4删除/添加属性为
- 7. 我正试图创建自定义授权属性在我的网络api mvc 4应用程序在visual basic
- 8. 从Testflight中的测试中删除旧版本
- 9. Python:删除子类中的类属性
- 10. 删除自动化API测试中的弹性搜索库?
- 11. sitecore RTE删除空属性
- 12. Angular 4单元测试子组件的属性
- 13. 如何删除Ruby on Rails 4测试版?
- 14. Laravel,从JSON中删除null雄辩的对象属性
- 15. PHP - 从字符串中删除HTML的属性在JSON
- 16. 在php中删除json属性
- 17. 从多个属性搜索的条件中删除搜索字符串/查询属性。从条件中删除空白参数的空白属性
- 18. 从SoapUI中的测试套件的所有测试用例中删除属性值?
- 19. 为子属性测试
- 20. ExecuteCore()在基类中的MVC 4测试版
- 21. 删除空的样式属性
- 22. 从HTML标记中只删除空的“值”属性
- 23. 试图从Xcode 4中删除图像
- 24. 集成测试和单元测试(WEB API mvc 4)
- 25. 我如何测试ASP.NET MVC 4 Web API中的自定义DelegatingHandler?
- 26. 删除表中的记录MVC 4
- 27. 删除DynamoDB中的属性
- 28. MVC测试版[HandleError]属性(需要帮助)
- 29. 从聚合物js中删除子元素的属性
- 30. 从JSON中删除尾随空白(ASP.NET API)
其实我想离开了。 – kkocabiyik 2012-04-14 01:50:40