为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕侠2389804 2018-07-28 13:14:54
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);
    }
}


查看完整回答
反对 回复 2018-07-30
?
临摹微笑

TA贡献1982条经验 获得超2个赞

直接字符串替换不就好了么 null 替换成“”

http://www.cnblogs.com/yanweidie/p/4605212.html


查看完整回答
反对 回复 2018-07-30
  • 2 回答
  • 0 关注
  • 3411 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信