我在我的ASP.NET MVC Web应用程序中有以下2个类: -
public class Details4
{
public Details4()
{
this.RESOURCECUSTOMFIELD = new List<RESOURCECUSTOMFIELD>();
}
[HiddenInput(DisplayValue = false)]
public string RESOURCENAME { set; get; }
[Display(Name = "Account Name")]
[Required]
public string ACCOUNTNAME { set; get; }
[Display(Name = "Resource type")]
[Required]
public string RESOURCETYPE { set; get; }
public List<RESOURCECUSTOMFIELD> RESOURCECUSTOMFIELD { set; get; }
}
public class RESOURCECUSTOMFIELD
{
public string CUSTOMLABEL { set; get; }
public string CUSTOMVALUE { set; get; }
}
现在我正在进行以下次要化,如下: -
resourceAccountListInfo = JsonConvert.DeserializeObject<Details4>(json);
但是,在某些情况下,我不感兴趣地将整个ResourceCustomfield列表列出。而另一方面,我需要Deserizlize resourcecustomfield列表。因此,有没有办法将某些属性排除在避难过程之外?我知道我可以在班级级别使用[JsonIgnore]
,但是这始终将排除相关组件,而我试图找到一种仅在某些方法上执行此操作的方法代码行??: -
resourceAccountListInfo = JsonConvert.DeserializeObject<Details4>(json);
您要寻找的是有条件地序列化对象成员。json.net具有此功能。您必须定义一个名为" serialize {memberName}返回布尔值的公共方法"。
public bool ShouldSerializeINSERT_YOUR_PROPERTY_NAME_HERE() {return true; // you can use some condition here}