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
。
希望能帮助到你!