Newtonsoft.Json反序列化空字符串

Chr*_*son 6 c# json json.net

可以说我有一个看起来像这样的对象:

public class MyObject
{
    [JsonProperty(Required = Required.Always)]
    public string Prop1 { get; set; }

    [JsonProperty(Required = Required.Always)]
    public string Prop2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试使用JsonConvert异常反序列化字符串,则在缺少任何一个属性时抛出异常.但是,如果我传递一个这样的空字符串:

JsonConvert.DeserializeObject<MyObject>("")
Run Code Online (Sandbox Code Playgroud)

null返回但没有抛出异常.我如何配置MyObject或反序列化器,以便JsonException抛出a 就像丢失任何所需的属性一样?

Eld*_*iev 6

只需检查是否为空。这是预期的行为,因为没有在空字符串中定义对象:)

var obj = JsonConvert.DeserializeObject<MyObject>("");
if (obj == null)
{
    throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)