Json.NET MissingMemberHandling设置

Json字符串缺少C#类所需的属性时,我希望Json.NET抛出JsonSerializationException

还有MissingMemberHandling Enumeration

在反序列化期间遇到缺少的成员时抛出JsonSerializationException。

但我认为这与我想要的相反。 我认为这意味着c#类中缺少一个成员。 我想要一个失踪的Json成员。

我的代码是

 public MyObj Deserialise(string json) { var jsonSettings = new JsonSerializerSettings(); jsonSettings.MissingMemberHandling = MissingMemberHandling.Error; return JsonConvert.DeserializeObject(json, jsonSettings); } 

例如

 public class MyObj { public string P1 { get; set; } public string P2 { get; set; } } string json = @"{ ""P1"": ""foo"" }"; 

json缺少P2。 我想知道这是什么情况。

谢谢。

您必须使用JsonPropertyAttribute将P2属性设置为必需属性

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

在您的示例中,您将获得JsonSerializationException

希望能帮助到你!