我正在使用.Net Web API技术创建一个HTTP服务,我创建了一些DTO类,当只需要某个数据子集时,我打算只用这些数据填充DTO以最小化传输的数据量。
有没有办法让JSON序列化程序忽略那些空的数据成员?我意识到[JsonIgnore]和[ScriptIgnore]属性将忽略特定成员,但我只想忽略它们,如果它们为null或为空。
[编辑]
感谢下面的L.B
我在WebApiConfig.cs中添加了以下内容,以便在Web API中启用它:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
答案 0 :(得分:14)
Json.Net有此
的设置var str = JsonConvert.SerializeObject(obj,
new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore });