JsonConvert.DeserializeObject()
方法在 Newtonsoft.Json (Json.NET) 中的签名为:
public static object? DeserializeObject(string value)
这里有源代码。
该方法(及其所有重载)返回可空对象。我想知道在什么情况下会返回null?我一直以为,这个方法要么在反序列化失败时抛出Newtonsoft.Json.JsonException
,要么在反序列化成功时构造一个正确的对象。然而官方文档并不解释这个可能性。
一个可能的情况是异常被自定义处理器处理了。还有其他情况会导致该方法返回null吗?
var obj = JsonConvert.DeserializeObject<MyObject>("invalid json", new JsonSerializerSettings
{
Error = (sender, args) => args.ErrorContext.Handled = true
});
// obj is null here?
JsonConvert.DeserializeObject<object>("")
。 - Guru Stron.DeserializeObject<..>("")
或者.DeserializeObject<..>("null")
。 - Lasse V. Karlsen