2013-08-09 27 views
9

Json dizesi, C# sınıfının gerektirdiği bir özellik eksik olduğunda Json.NET değerini atmak istiyorum JsonSerializationException.Json.NET MissingMemberHandling ayarı

eksik üye seri kaldırma sırasında karşılaşılan olduğunda

bir JsonSerializationException atmak MissingMemberHandling Enumeration yoktur.

ama bu ne istiyorum ters olduğunu düşünüyorum. Bence bu C# sýnýfýnda eksik bir üye demektir. Eksik bir Json üyesi istiyorum.

Benim kod örneği

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

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

P2 json eksik İçin

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

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

olduğunu. Durumun ne zaman olduğunu bilmek istiyorum.

Teşekkürler.

cevap

9

Sen bir JsonSerializationException alabilirsiniz.Hangi örnekle JsonPropertyAttribute

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

ile zorunlu P2 özelliğini ayarlamanız gerekir.

Umut eder!