『QQ:1353814576』

C# Newtonsoft.Json 处理null值不序列化


Newtonsoft.Json 处理null值不序列化 指定字段不序列化

有时候我们需要要将一个对象序列化,可是如果对象的属性为null的时候 实际输出并没有什么作用,为了美观我们可以将属性为null的都排除在序列化内容之外。这里做一下笔记

//将Json字符串转为对象
Model model=JsonConvert.DeserializeObject<Model>(val);

//将对象转化为json格式的字符串
string jsonString = JsonConvert.SerializeObject(obj);

那么在编程时如何在序列化对象为json时过滤掉NULL值呢? 以下是实现方法

笔者开发使用的是 Newtonsoft.Json.dll 这里以此为例 序列化时将所有nul值属性排除在外

var jSetting = new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
var json = JsonConvert.SerializeObject(response, Formatting.Indented, jSetting);

上面那是全局的,如果需求只是对其中某一个属性生效的话,使用下面的方法:

[JsonProperty(PropertyName="TestObj",NullValueHandling=NullValueHandling.Ignore)]
public Object TestObj { get; set; }

Newtonsoft.Json.dll 指定某个字段不参与序列化(不管是否为null都不进行序列化操作)

[JsonIgnore]
public Object TestObj { get; set; }