为何ASP.NET Core 5会将JSON空值列表属性反序列化为空列表?
解决ASP.NET Core 5中JSON空列表属性反序列化为null的问题
ASP.NET Core 5默认使用System.Text.Json处理序列化与反序列化,它的默认规则会把JSON中为null的列表属性(或请求中未传递该属性)反序列化为空列表,而非null。要实现你期望的行为,只需在Startup中配置序列化选项即可:
在ConfigureServices方法里,为AddControllers添加Json配置:
public void ConfigureServices(IServiceCollection services) { services.AddControllers() .AddJsonOptions(options => { // 开启后,空值/未传递的列表属性会被反序列化为null options.JsonSerializerOptions.AllowNullCollections = true; }); }
配置完成后,当请求JSON中的列表属性为null,或者未包含该属性时,控制器参数对应的列表字段就会被反序列化为null,而非空列表。
内容的提问来源于stack exchange,提问作者signum
相关产品推荐
相关产品推荐

