我有一个.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(用户)在序列化时忽略空/默认财产,否则返回所有财产?