NewtonSoft add JSONIGNORE at runTime

后端 未结 5 2257
一个人的身影
一个人的身影 2020-11-27 05:05

Am looking to Serialize a list using NewtonSoft JSON and i need to ignore one of the property while Serializing and i got the below code

pub         


        
5条回答
  •  借酒劲吻你
    2020-11-27 05:39

    Try this:

        public static void IgnoreProperty(this T parameter, Expression> propertyLambda)
        {
            var parameterType = parameter.GetType();
            var propertyName = propertyLambda.GetReturnedPropertyName();
            if (propertyName == null)
            {
                return;
            }
    
            var jsonPropertyAttribute = parameterType.GetProperty(propertyName).GetCustomAttribute();
            jsonPropertyAttribute.DefaultValueHandling = DefaultValueHandling.Ignore;
        }
    
        public static string GetReturnedPropertyName(this Expression> propertyLambda)
        {
            var member = propertyLambda.Body as MemberExpression;
            var memberPropertyInfo = member?.Member as PropertyInfo;
            return memberPropertyInfo?.Name;
        }
    

    So you can do this:

    carObject.IgnoreProperty(so => so.LastModified);
    

提交回复
热议问题