C# 如何设置';ItemNullValueHandling';c语言中的动态值#
我需要根据类属性值在响应中显示属性。如果我们默认初始化该类,则所有属性都将初始化。因此,我想忽略基于属性的属性 这是我的班级C# 如何设置';ItemNullValueHandling';c语言中的动态值#,c#,json,json.net,C#,Json,Json.net,我需要根据类属性值在响应中显示属性。如果我们默认初始化该类,则所有属性都将初始化。因此,我想忽略基于属性的属性 这是我的班级 [JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)] Public class Student { public string name{get; set;} public string address{get;set;} public bool succes
[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]
Public class Student
{
public string name{get; set;}
public string address{get;set;}
public bool success{get;set;}
}
在上面的类中,基于success的值,我必须决定显示响应的属性,即使它们为null
我认为一个解决办法是保持
[JsonObject(ItemNullValueHandling=NullValueHandling.Ignore)]
但是动态地我必须设置ItemNullValueHandling的值我不知道如何动态地设置,请任何人建议我。提前谢谢 您将无法使用属性动态更改序列化设置,因为它们在编译时是固定的 但是,您可以将JsonSerializerSettings的实例传递给反序列化()方法,如下所示
var showAllProperties=student.success;
var serializerSettings=new JsonSerializerSettings{
NullValueHandling=showAllProperties?NullValueHandling。包括:NullValueHandling.Ignore;
}
var result=JsonConvert.SerializeObject(学生,serializerSettings)