假设我的对象看起来像这样:
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
,就像丢失任何所需的属性一样?
答案 0 :(得分:3)
检查是否为空。它是一种预期的行为,因为在空字符串中没有定义对象:)
var obj = JsonConvert.DeserializeObject<MyObject>("");
if (obj == null)
{
throw new Exception();
}
答案 1 :(得分:1)
你需要像这样装饰你的类:
[JsonObject(ItemRequired = Required.Always)]
public class MyObject
{
}