Ana*_*nas 1 java spring spring-mvc spring-boot postman
我创建了一个带有Map<String, Integer>参数的 API,如下所示:
@RequestMapping(value = "upload", method = RequestMethod.POST)
public ResponseEntity<String> handleContactsFileUpload(@RequestParam("file") MultipartFile file,
@RequestParam("name") String name,
@RequestParam("campaignAppItemId") Long campaignAppItemId,
@RequestParam("fileColumnHeaders") Map<String,Integer> fileColumnHeaders) throws Exception {
if (file == null)
return new ResponseEntity<>("No file uploaded", HttpStatus.BAD_REQUEST);
contactService.handleContactsFile(file, name, campaignAppItemId,fileColumnHeaders);
return new ResponseEntity<>("File uploaded successfully", HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
我试图通过邮递员调用它:

我通过了fileColumnHeaders内部 Body->Form Data,如屏幕截图所示。
然后我在 Postman 中收到了这样的消息:
无法将类型“java.lang.String”的值转换为所需类型“java.util.Map”;嵌套异常是 java.lang.IllegalStateException:无法将类型“java.lang.String”的值转换为所需类型“java.util.Map”:找不到匹配的编辑器或转换策略。
有人知道为什么会发这个消息吗?我们如何在 Rest API 请求中将地图作为参数传递?我们如何通过Postman传递地图?
您可以使用@RequestBody代替@RequestParamMap 和其他重要的数据类型和对象 - 这样 spring 会将表示您的地图参数的 JSON 映射到域对象,然后该域对象可序列化并可以转换为 java 对象。
| 归档时间: |
|
| 查看次数: |
31730 次 |
| 最近记录: |