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(),
});