【发布时间】:2021-12-31 14:45:01
【问题描述】:
我正在尝试在 post 方法中验证 JSON 正文。这是一个示例代码:
@PostMapping(value = "GetInfo")
public ResponseEntity<Person> getOffers(@Valid @RequestBody InfoRequest infoRequest) {
//generate person response according to inforequest JSON.
Person person = PersonGenerator.getOffers(infoRequest);
return new ResponseEntity<>(person, HttpStatus.OK);
}
当我发送 JSON 正文以获取信息时(例如:Name 和 Age),如果输入了 Person 类不需要的一些额外字段,我希望程序抛出错误。作为下面ExtraField 的示例。但是@RequestBody 和@Valid 注释只是检查匹配的字段。因为它被过滤了(在这种情况下,afaik ExtraField 被过滤了)我无法获得完整的 JSON 来分析 infoRequest 以查找是否发送了任何额外信息。
{
"Name": "sample",
"Age": "sample",
"ExtraField": "prevent",
}
我知道有一些库可以检查 JSON 文件。但首先我必须知道会发生什么:)。 如果没有注释可以看到输入的额外字段。如何提取和分析 JSON 文件*
注意:出于安全考虑,不能将参数类型 infoRequest 更改为字符串。
【问题讨论】:
-
您是否使用 Jackson 进行 JSON 序列化/反序列化?
标签: json spring-boot rest