反序列化json字符串时如何忽略某些属性。
说我有一个字符串
{"Id": 123, "name":"Test", "Description":"desc123ds"}
和具有相同属性的类。 在某些情况下,我不想返回“ Id”。
我尝试了一个自定义的ContractResolver,但它唯一要做的就是设置默认值,并且该属性仍然存在于json字符串中。
public class CoreJsonContractResolver<T> : DefaultContractResolver
{
public static CoreJsonContractResolver<T> Instance { get; } = new CoreJsonContractResolver<T>();
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
var property = base.CreateProperty(member, memberSerialization);
if(property.DeclaringType == typeof(T))
{
if (property.PropertyName == "Id")
property.Ignored = true;
}
return property;
}
}
编辑: 我不使用[JsonIgnore]属性的原因是,仅在某些情况下才需要忽略属性。