gpt4 book ai didi

c# - 在哪些情况下 JsonConvert.DeserializeObject 实际上返回 null?

转载 作者:行者123 更新时间:2023-12-03 21:12:22 24 4
gpt4 key购买 nike

我正在使用 .NET core 3.1、C#8 和启用的可为空引用类型。
从我正在编写的类库中,我引用了版本 12.0.3 NewtonsoftJson package .
我注意到通过调用 JsonConvert.DeserializeObject<T>我可以获得空引用(Visual Studio 分析器检测到可能取消引用空引用)。
请注意,我正在调用带有字符串和 JsonSerializerSettings 实例的重载。 .我只使用 JsonSerializerSettings为了处理可能的反序列化错误(通过 Error property )。
github 源代码通过 MaybeNull 确认我正在调用的重载可以返回空引用。属性:看看here进行确认。
我的问题是:在什么情况下 newtonsoft JSON 返回 null将 JSON 字符串反序列化为 .NET 类型时的引用?
通常它返回一个填充给定类型的对象,或者它的属性为其类型的默认值,我从未遇到过 null 的情况。而是返回。

最佳答案

由于 JSON 文字 null is valid JSON ,您可以按如下方式重现:

var o = JsonConvert.DeserializeObject<object>("null");
Console.WriteLine(o == null); // True

关于c# - 在哪些情况下 JsonConvert.DeserializeObject<T> 实际上返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62999730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com