假设我有一个像这样的对象:
public class MyObject
{
[JsonProperty(Required = Required.Always)]
public string Prop1 { get; set; }
[JsonProperty(Required = Required.Always)]
public string Prop2 { get; set; }
}
现在,如果我尝试使用JsonConvert
来反序列化字符串,那么当其中任何一个属性丢失时,都会引发异常。然而,如果我传递这样一个空字符串:
JsonConvert.DeserializeObject<MyObject>("")
返回null
,但未引发异常。如何配置MyObject
或反序列化程序,以便像缺少任何必需属性时一样抛出JsonException
?
只需检查是否为null。这是一种预期的行为,因为在空字符串中没有定义对象:)
var obj = JsonConvert.DeserializeObject<MyObject>("");
if (obj == null)
{
throw new Exception();
}
你需要像这样装饰你的类:
[JsonObject(ItemRequired = Required.Always)]
public class MyObject
{
}