当字符串缺少C#类所需的属性时,我想Json.NET抛出一个。JsonSerializationException``Json
Json.NET
JsonSerializationException``Json
有MissingMemberHandling Enumeration那个
MissingMemberHandling Enumeration
反序列化过程中遇到缺少的成员时,抛出JsonSerializationException。
但是我认为这与我想要的相反。我认为这意味着C#类上缺少成员。我想要一个失踪的Json成员。
我的代码是
public MyObj Deserialise(string json) { var jsonSettings = new JsonSerializerSettings(); jsonSettings.MissingMemberHandling = MissingMemberHandling.Error; return JsonConvert.DeserializeObject<ApiMessage>(json, jsonSettings); }
例如
public class MyObj { public string P1 { get; set; } public string P2 { get; set; } } string json = @"{ ""P1"": ""foo"" }";
json中缺少P2。我想知道是什么情况。
谢谢。
您必须使用以下命令将P2属性设置为必选 JsonPropertyAttribute
JsonPropertyAttribute
public class ApiMessage { public string P1 { get; set; } [JsonProperty(Required = Required.Always)] public string P2 { get; set; } }
通过您的示例,您将获得一个JsonSerializationException。
JsonSerializationException
希望能帮助到你!