我是spring Boot 的新手,正在参考this文章。它要求添加@JsonInclude(Include.NON_NULL)
注解以从response body中删除空属性,但我对从request body中删除空属性感兴趣。请建议我如何实现这一点。
请求正文为:
{
"userUuid": "2u9k2ld8f-ghj47dhj",
"suggestion": null
}
并且请求DTO类为:
@Data
@NoArgsConstructor
public class UserRequestDTO implements Serializable {
private String userUuid;
@JsonInclude(JsonInclude.Include.NON_NULL)
private String suggestion;
}
很明显,它对我不起作用。当我字符串化并打印请求主体时,它包括suggestion
attr,即null
。感谢您的帮助。
2条答案
按热度按时间5jdjgkvh1#
好吧......不要使用
toString()
,使用Jackson对象Map器。例如:这样注解才能正常工作。
无论如何,这不是一个非常理想的问题,你可能需要重新考虑如何计算校验和(你的问题有点像XY-problem)。
b09cbbtk2#
我需要生成有效负载的校验和(不包括空属性)。我不想替换空属性,而想删除它。要生成签名,我将在请求主体上执行.toString()
我想你要找的请求具有动态属性。
请尝试在参数上使用
HashMap<String,Object>
。另一个简单的方法是覆盖DTO中的
toString()
并忽略空属性。建议:除了使用这个只用于日志记录,我认为这两个都是坏的做法,可以更好地创建一个方法
generateSignature()
处理所有的规则。