Enr*_*one 4 c# json.net .net-core c#-8.0 nullable-reference-types
我正在使用 .NET core 3.1、C#8 和可空引用类型。
从我正在编写的类库中,我引用了NewtonsoftJson 包的12.0.3版。
我注意到通过调用JsonConvert.DeserializeObject<T>我可以获得一个空引用(Visual Studio 分析器检测到一个可能的空引用取消引用)。
请注意,我正在调用带有字符串和JsonSerializerSettings. 我只是使用JsonSerializerSettings来处理可能的反序列化错误(通过Error 属性)。
github 源代码确认我正在调用的重载可以通过MaybeNull属性返回空引用:查看此处进行确认。
我的问题是:在哪些情况下,newtonsoft JSONnull在将 JSON 字符串反序列化为 .NET 类型时会返回引用?
通常它返回一个给定类型的对象,或者它的属性为它们的类型的默认值,我从来没有遇到过null返回的情况。
由于 JSON 文字null 是有效的 JSON,您可以按如下方式重现:
var o = JsonConvert.DeserializeObject<object>("null");
Console.WriteLine(o == null); // True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |