Pav*_*nin 5 c# json .net-core system.text.json
Json.NET 行为可以由属性定义:如果 json 负载不包含必需的属性,则使用默认值或仅抛出异常。
然而System.Text.Json序列化器默默地什么都不做。
上课:
public sealed class Foo
{
[Required]
public int Prop {get;set;} = 10;
}
Run Code Online (Sandbox Code Playgroud)
并反序列化空对象:
JsonSerializer.Deserialize<Foo>("{}");
Run Code Online (Sandbox Code Playgroud)
我只是得到一个Foowith的实例Prop=10。我找不到任何设置JsonSerializerOptions来强制它抛出异常。是否可以?
如果没有收到目标类型的属性之一的值,System.Text.Json 不会引发异常。您需要实现一个自定义转换器。
该[JsonRequired]属性System.Text.Json按要求工作,但从 .NET 7 开始可用。请参阅必需的属性文档。
此外,在 .NET 8 中,您还可以使用JsonUnmappedMemberHandling.Disallow选项强制 JSON 字符串正确映射到 POCO/模型属性。请参阅处理反序列化期间丢失的成员文档。
| 归档时间: |
|
| 查看次数: |
2299 次 |
| 最近记录: |