您的位置:首页 > 移动开发 > Objective-C

JsonConvert.SerializeObject 空值处理

2017-02-06 10:08 316 查看
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, null);
if (_MemberInfo.PropertyType == typeof(string) && result == null) result = "";
return result;

}

public void SetValue(object target, object value)
{
_MemberInfo.SetValue(target, value,null);
}
}


  程序员的基础教程:菜鸟程序员
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: