JsonSerializer.Deserialize<TValue>方法何时会返回null?
JsonSerializer.Deserialize返回null的场景
针对你给出的record Test(string Whatever)代码,JsonSerializer.Deserialize<Test>主要会在以下场景返回null:
- 当输入的JSON字符串为**
"null"**时,JSON中的null字面量会直接映射为.NET的null引用,此时方法返回null。 - 若后续修改
JsonSerializerOptions,配置了允许将空JSON对象反序列化为null的规则(比如自定义转换器或特定选项),也可能返回null,但默认配置下不存在这种情况。
需要注意的是:
- 输入空字符串或格式无效的JSON不会返回null,而是会直接抛出
JsonException异常。 - 对于你定义的这个带必填参数的record,若输入JSON为
"{}"(空对象),会因无法构造带必填参数的实例而抛出异常,不会返回null。
内容的提问来源于stack exchange,提问作者Andreas Schörgenhumer
相关产品推荐
相关产品推荐

