提问人:Kalhara 提问时间:8/30/2023 最后编辑:Kalhara 更新时间:8/30/2023 访问量:35
使用 Java 模型类验证响应 Json
Validate Response Json with Java Model Class
问:
我正在开发一个 Spring Boot 应用程序。我使用了一个 Restful API,并得到了一个 json 响应,我对其进行了反序列化。
问题是 API 使用不正确的字段进行响应,并且一些不应为 null 的值作为 null 值发送。因此,当我使用方法验证反序列化对象时,它会引发错误。最糟糕的是,它没有提到 json 中的错误字段是什么。API 响应应该是固定的,但我想知道 json 在哪里不遵守模型类。org.springframework.validation.Validator.validate
我怎样才能验证 json 并知道哪些字段违反了 json 中的 null、不正确的属性名称等约束?提前致谢。
public void validate(Object object) {
BeanPropertyBindingResult result = new BeanPropertyBindingResult(object,
object.getClass().getSimpleName());
validator.validate(object, result);
if (!result.hasErrors()) {
return;
}
List<String> errorMessages = new ArrayList<>();
for (FieldError fieldError : result.getFieldErrors()) {
String field = fieldError.getField();
String message = fieldError.getDefaultMessage();
errorMessages.add("Field: " + field + ", Error: " + message);
}
String errorMsg = errorMessages.stream().collect(Collectors.joining("\n"));
if (enabledThrowException) {
throw new IllegalStateException("Incorrectly Declared Fields:\n" + errorMsg);
}
log.error(errorMsg);
}
这是一个相当大的模型类的一部分,模型类无法更改以适应 API 响应 Json。
@Data
public class Student {
@NotNull
@Schema(description = "Student name.")
private String name;
@Nullable
@Schema(description = "University url.")
private String url;
@Nullable
@Schema(description = "Description")
private String Description;
}
答: 暂无答案
评论