kko*_*yik 14 c# asp.net-mvc json asp.net-web-api
我正在序列化对象并从我的Web服务返回json.但是,我试图从序列化的json中省略null属性.有没有办法做到这一点?我正在使用Web Api MVC 4 beta.
nem*_*esv 15
ASP.NET Web API目前(有计划将其更改为最终版本以使用Json.Net)默认使用DataContractJsonSerializer来序列化JSON.
因此,您可以使用标准DataContract/DataMember属性控制序列化过程.要跳过null属性,可以将EmitDefaultValue设置为false.
[DataContract]
public class MyObjet
{
[DataMember(EmitDefaultValue = false)]
public string Prop1 { get; set; }
[DataMember(EmitDefaultValue = false)]
public string Prop2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果您想要更多地控制JSON响应的序列化方式,您可以使用包含使用Json.Net或内置JavaScriptSeralizer的格式化程序的WebAPIContrib包.
在Json.Net中,您可以将JsonPropertyAttribute与NullValueHandling = NullValueHandling.Ignore一起使用.看起来这里没有办法为全班做这个,只为每个类字段/属性明确.
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string SometimesNull { get; set; }
Run Code Online (Sandbox Code Playgroud)
仅供参考.因此,Json.Net默认使用空值序列化属性是有原因的.看一下,可能是适用于您的案例的一些原因.
| 归档时间: |
|
| 查看次数: |
8988 次 |
| 最近记录: |