2013-08-09 2 views
9

Json 문자열에 C# 클래스에 필요한 속성이없는 경우 에 JsonSerializationException을 던지겠습니다.Json.NET MissingMemberHandling 설정

누락 된 멤버가 직렬화 복원시에 발생 때

는 JsonSerializationException을 던져 MissingMemberHandling Enumeration있다.

그러나 이것이 내가 원하는 것의 반대라고 생각합니다. 나는 이것이 C# 클래스에서 누락 된 멤버를 의미한다고 생각한다. 실종 된 Json 회원을 원해.

내 코드는 예

public class MyObj 
{ 
    public string P1 { get; set; } 
    public string P2 { get; set; } 
} 

string json = @"{ ""P1"": ""foo"" }"; 

P2는 JSON에서 누락 들어

public MyObj Deserialise(string json) 
{ 
    var jsonSettings = new JsonSerializerSettings(); 
    jsonSettings.MissingMemberHandling = MissingMemberHandling.Error; 

    return JsonConvert.DeserializeObject<ApiMessage>(json, jsonSettings); 
} 

이다. 나는 언제 이것이 사실인지 알고 싶다.

감사합니다.

답변

9

당신은 당신이 JsonSerializationException을 얻을 것이다, 당신의 예와 JsonPropertyAttribute

public class ApiMessage 
{ 
    public string P1 { get; set; } 
    [JsonProperty(Required = Required.Always)] 
    public string P2 { get; set; } 
} 

와 의무에 P2 속성을 설정해야합니다.

희망이 있습니다.