我试图将Object解析为JSON字符串并在发送之前验证JSON。使用Spring @Valid标记根据Object定义中指定的参数确保JSON有效。 但是,我发现没有检查JSON中字段的重复。是否有标签来控制字段的重复?
对象:
public class Test {
@Size(min=2, max=30) @NotNull
private String name;
@NotEmpty @Email
private String email;
@NotNull @Min(13) @Max(110)
private Integer age;
@Size(min=10)
private String phone;
@NotNull
private Gender gender;
}
呼叫:
public void putTest(..., @RequestBody @Valid Test test,...)
不幸的是,它接受以下格式的Test对象:
{Name: "Test", Email: "test@test.com", age: 20, **Gender: "M", Gender:"F"**}
答案 0 :(得分:0)
如果您的JSON帖子正确,则您的字段名称有问题
请参阅:
{Name: "Test", Email: "test@test.com", age: 20, **Gender: "M", Gender:"F"**}
属性的第一个字母是大写的。
解决方案时,地图属性相同
import com.fasterxml.jackson.annotation.JsonProperty;
public class Test {
@Size(min=2, max=30) @NotNull
@JsonProperty("Name")
private String name;
@NotEmpty @Email
@JsonProperty("Email")
private String email;
@NotNull @Min(13) @Max(110)
@JsonProperty("Age")
private Integer age;
@Size(min=10)
@JsonProperty("Phone")
private String phone;
@NotNull
@JsonProperty("Gender")
private Gender gender;
}