我正在使用带有json body的url https://myWebsite.com/users进行PUT调用以更新用户
[{
"Name" : "John",
}]
由于我没有在json body中传递“状态”属性,因此默认情况下将其设置为false,因为false是布尔数据类型的默认值。
但是,如果在进行API调用时未在json中传递属性,我需要将其设置为true作为默认值。
我尝试使用OnDeserializing属性,如下所示:
[OnDeserializing]
void BeforeDeserialization(StreamingContext ctx)
{
this.Status = true;
}
但它不起作用。
模型如下所示:
[DataContract (Namespace = "mynamespace")]
public class User
{
[DataMember]
public string Name { get; set; }
[DataMember]
public bool Status { get; set; }
}
请帮我解决这个问题。
您可以将默认值分配给布尔属性status
,例如,
[DataContract (Namespace = "mynamespace")]
public class User
{
[DataMember]
public string Name { get; set; }
[DataMember]
public bool Status { get; set; } = true;
//^^^^^^^^ Set default value to Status property
}
这样,即使您传递了状态属性的值,默认值也将替换为实际值,否则会将状态属性的值设置为真。
让我们尝试使用DefaultValueAttribute
如果您反序列化为一个类,那么在该类中有一个默认为真值的bool成员。例如:
public class NameAndStatus
{
public string name { get; set;}
public bool status { get; set; } = true; // default value of true
}
如果status
与json正文一起传入,则成员将设置为传入的值。否则您将获得默认值,即true
。
问题内容: 是否可以使用默认值覆盖display属性?例如,如果我以一种样式将其设置为none,而我想以其默认值以其他方式覆盖它。 还是找出该元素的默认值然后将其设置为默认值的唯一方法?不想知道元素通常是block,inline还是任何一个… 问题答案: 浏览器的默认样式在其用户代理样式表中定义,您可以在此处找到其来源。不幸的是,级联和继承级别3规范似乎并未提出一种将样式属性重置为其浏览器默认值的
我在spring-boot项目中有一个properties类。 现在,我想将的application.properties文件中的其他属性设置默认值。与下面的示例使用@value所做的类似
在使用Jackson反序列化Json时,当Json文件中缺少属性时,是否有方法指定默认值
问题内容: 在php生成的页面上,有几个像这样的元素: 因此,有一个默认样式,我将应用一些额外的样式来覆盖CSS中定义的样式。 有没有办法从javascript中删除这些添加的样式?看来obj.style.color =“ default”和obj.style.color =“ auto”无效。如何从javascript将颜色重置为CSS默认值? 问题答案: 如果回忆有用,应该可以工作……我不知道
问题内容: 如果我尝试声明属性,如下所示: …它不起作用,因为它不被视为“属性”,而仅仅是模型类的一个属性。不仅如此,而且我也禁止访问实际存在的“数量”属性。 那我该怎么办? 问题答案: 这就是我现在正在做的: 我将其建议为PR,因此我们无需在每个Model上都声明此构造函数,并且只需在模型中声明数组即可轻松应用… 更新 : 正如cmfolio指出的那样, 实际的ANSWER非常简单 : 只需覆盖
20.1 属性默认值 Spring Boot支持的一些库使用缓存来提高性能。例如,模板引擎会缓存已编译的模板,以避免重复解析模板文件。此外,Spring MVC可以在服务静态资源时将HTTP缓存的头部添加到响应中。 虽然缓存功能对生产环境非常有益,但在开发过程中可能会产生反作用,使您无法看到程序中刚刚做出的更改。由于这个原因,spring-boot-devtools默认会禁用那些缓存选项。 缓存选