Json.NET MissingMemberHandling设置

当字符串缺少C#类所需的属性时,我想Json.NET抛出一个。JsonSerializationException``Json

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

public class ApiMessage

{

public string P1 { get; set; }

[JsonProperty(Required = Required.Always)]

public string P2 { get; set; }

}

通过您的示例,您将获得一个JsonSerializationException

希望能帮助到你!

以上是 Json.NET MissingMemberHandling设置 的全部内容, 来源链接: utcz.com/qa/408381.html

回到顶部