2016-06-30 3 views
0

나는이 내 asp.net MVC 웹 응용 프로그램 내에서 다음 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 목록을 비 직렬화하는 데 관심이 없습니다. 다른 한편으로는 RESOURCECUSTOMFIELD 목록을 deserizlize해야합니다. Deserialization 프로세스에서 일부 속성을 제외하는 방법이 있습니까? 나는 클래스 수준에서 [JsonIgnore]을 사용할 수 있지만이 방법은 특정 메소드에서만 수행하는 방법을 찾으려고 시도하는 동안 관련 구성 요소를 제외한다는 것을 알고 있으므로이 내부의 일부 속성을 제외하는 방법이 있습니다. 코드 줄 : -

resourceAccountListInfo = JsonConvert.DeserializeObject<Details4>(json); 

답변

0

찾고있는 것은 조건부로 개체 멤버를 serialize하는 것입니다. Json.NET에는이 기능이 있습니다. 부울 값을 반환하는 ShouldSerialize {MemberName}이라는 공용 메서드를 정의해야합니다.

public bool ShouldSerializeINSERT_YOUR_PROPERTY_NAME_HERE() {return true; // you can use some condition here} 
+0

나는 당신의 요점을 얻지 못했습니까? 이 방법을 사용하는 방법? 이 URL을 확인 –

+0

http://www.newtonsoft.com/json/help/html/conditionalproperties.htm – mhdbaz

+0

또한 URL을 [링크] (https://blog.mariusschulz.com/2013/04/15/조건부 직렬화 - fields-and-properties-with-jsonnet) – mhdbaz

관련 문제