我有一个.NET7webapi,带有返回用户的路由。
public class User { public Guid? Id { get; set; } public String? Name { get; set; } public Int32? Age { get; set; } public String? HairColor { get; set; } }
如果Select
查询参数中包含“Name”,则数据库仅返回Name属性,Ok(users);
返回。前任:
[ { "id": null, "name": "Test1", "age": null, "hairColor": null }, { "id": null, "name": "Test2", "age": null, "hairColor": null }, { "id": null, "name": "Test3", "age": null, "hairColor": null, } ]
为了节省包装尺寸,我希望它返回:
[ { "name": "Test1" }, { "name": "Test2" }, { "name": "Test3" } ]
但是,如果Select
查询参数中没有任何内容,则会填充并返回所有财产,即使是null/default。如何动态设置
JsonSerializerOptions options = new() { DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault };
因此,如果设置了Select
,Ok(用户)在序列化时忽略空/默认财产,否则返回所有财产?