【发布时间】:2021-05-21 13:31:47
【问题描述】:
我创建了一个具有@Valid 和@NotEmpty 注释的类。我没有使用该类来传递请求正文,但稍后在我的应用程序中创建它的对象,然后注释不起作用。
请求正文:
String jsonData;
我正在使用 gson 库将此 jsonData 转换为 Json 对象
JSON 对象类 JsonObject.class
@NotEmpty
@Valid
List<JsonObject> list;
public static class innerClass {
@NotEmpty
private String name;
@NotEmpty
private int age;
}
gson的实现:
JsonObject json = gson.fromJson(requestBody.getJsonData(), JsonObject.class); //this should give error if I pass age or name as empty but it's not showing error
如果我按如下方式传递请求正文,它应该会抛出错误,但不会。
{"jsonData":"{}"}
【问题讨论】:
-
为什么你认为
fromJson应该处理验证并抛出验证错误?反序列化它然后验证它。 Spring MVC 完全一样。就是这样。 -
fromJson()不是只做反序列化吗? -
这就是我所说的。让 fromJson 做验证,即 JSR-303,是个坏主意。
标签: java spring spring-boot gson