Newtonsoft.Json 中 json数据中的 null如何转换成 ""

Newtonsoft.Json 中 json数据中的 null如何转换成 ""?个人只看到一个忽略空值的属性
JsonSerializerSettings jsetting=new JsonSerializerSettings();
 jsetting.NullValueHandling = NullValueHandling.Ignore;

json:

{ Name = "Jack", Age = 31, Gender = "Male", DepartmentName = "Personnel Department", Leader = null }

转换的结果:
{ Name = "Jack", Age = 31, Gender = "Male", DepartmentName = "Personnel Department", Leader = ""}

如何使json串中的 null能转成 "" ,求解!


慕侠2389804
浏览 3322回答 2
2回答

慕容3067478

需要自己写一个NullToEmptyStringResolver,下面的代码来自Json Convert empty string instead of null:var&nbsp;settings&nbsp;=&nbsp;new&nbsp;JsonSerializerSettings()&nbsp;{&nbsp;ContractResolver=&nbsp;new&nbsp;NullToEmptyStringResolver()&nbsp;};var&nbsp;str&nbsp;=&nbsp;JsonConvert.SerializeObject(yourObj,&nbsp;settings);public&nbsp;class&nbsp;NullToEmptyStringResolver&nbsp;:&nbsp;Newtonsoft.Json.Serialization.DefaultContractResolver{&nbsp;&nbsp;&nbsp;&nbsp;protected&nbsp;override&nbsp;IList<JsonProperty>&nbsp;CreateProperties(Type&nbsp;type,&nbsp;MemberSerialization&nbsp;memberSerialization)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;type.GetProperties() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Select(p=>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;jp&nbsp;=&nbsp;base.CreateProperty(p,&nbsp;memberSerialization); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jp.ValueProvider&nbsp;=&nbsp;new&nbsp;NullToEmptyStringValueProvider(p);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;jp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}).ToList(); &nbsp;&nbsp;&nbsp;&nbsp;} }public&nbsp;class&nbsp;NullToEmptyStringValueProvider&nbsp;:&nbsp;IValueProvider{ &nbsp;&nbsp;&nbsp;&nbsp;PropertyInfo&nbsp;_MemberInfo;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;NullToEmptyStringValueProvider(PropertyInfo&nbsp;memberInfo)&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_MemberInfo&nbsp;=&nbsp;memberInfo; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;object&nbsp;GetValue(object&nbsp;target)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object&nbsp;result&nbsp;=&nbsp;&nbsp;_MemberInfo.GetValue(target);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(_MemberInfo.PropertyType&nbsp;==&nbsp;typeof(string)&nbsp;&&&nbsp;result&nbsp;==&nbsp;null)&nbsp;result&nbsp;=&nbsp;"";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;SetValue(object&nbsp;target,&nbsp;object&nbsp;value)&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_MemberInfo.SetValue(target,&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;} }

临摹微笑

直接字符串替换不就好了么 null 替换成“”http://www.cnblogs.com/yanweidie/p/4605212.html
打开App,查看更多内容
随时随地看视频慕课网APP