Newtonsoft.Json正在反序列化空字符串



假设我有一个像这样的对象:

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
{
}

相关内容

  • 没有找到相关文章

最新更新