Newtonsoft.Json忽略empty

class ContractResolver : CamelCasePropertyNamesContractResolver
{
    protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
    {
        var a = base.CreateProperty(member, memberSerialization);
        a.ShouldSerialize = p => filter(a.ValueProvider.GetValue(p));
        return a;
    }
    bool filter(object a)
    {
        if (a == null || "".Equals(a)) return false;
        var arr = a as ICollection;
        if (arr != null && arr.Count == 0) return false;
        return true;
    }
}

JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings()
{
    DateFormatString = "yyyy-MM-dd HH:mm:ss",
    ContractResolver = new ContractResolver(),
});

猜你喜欢

转载自blog.csdn.net/slwsss/article/details/105593007