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