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能轉成 "" ,求解!
2 回答

慕容3067478
TA貢獻1773條經驗 獲得超3個贊
需要自己寫一個NullToEmptyStringResolver,下面的代碼來自Json Convert empty string instead of null:
var settings = new JsonSerializerSettings() { ContractResolver= new NullToEmptyStringResolver() };var str = JsonConvert.SerializeObject(yourObj, settings);
public class NullToEmptyStringResolver : Newtonsoft.Json.Serialization.DefaultContractResolver{ protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization) { return type.GetProperties() .Select(p=>{ var jp = base.CreateProperty(p, memberSerialization); jp.ValueProvider = new NullToEmptyStringValueProvider(p); return jp; }).ToList(); } }public class NullToEmptyStringValueProvider : IValueProvider{ PropertyInfo _MemberInfo; public NullToEmptyStringValueProvider(PropertyInfo memberInfo) { _MemberInfo = memberInfo; } public object GetValue(object target) { object result = _MemberInfo.GetValue(target); if (_MemberInfo.PropertyType == typeof(string) && result == null) result = ""; return result; } public void SetValue(object target, object value) { _MemberInfo.SetValue(target, value); } }
- 2 回答
- 0 關注
- 3518 瀏覽
添加回答
舉報
0/150
提交
取消