问题描述
我正在使用 javax 注释验证 json 字符串到 bean 的转换,我正在使用 javax.validation.Validator 接口,在类中,我已将一个属性标记为字符串
@NotBlank(message ="User name cannot be null")
private String userName;
我希望值用双引号括起来。喜欢 {"userName" : "my name"}。
但是,如果我将值作为 {"userName" : 1234567889} 传递,则会出现问题,验证器将其视为有效值。有没有办法限制所有这些值,或者是否有一个列表,列出所有情况下哪些被认为是坏的 Json,哪些不是。任何参考都会有所帮助。
编辑1:可能很多解释造成了混乱,让我简单地说,我希望只有在双引号中的值才能被接受,例如{“key”:“value”}违反了其他约束。
解决方法
你可以使用
@Pattern(regexp="<your regular expression>",message="<message>")
注解来自javax.validation.constraints
示例,
@Pattern(regexp="^[a-zA-Z]{4,10}",message="Invalid username")
private String userName;
以上将接受 4 到 10 个字符的用户名