我正在用spring构建一个restful API,并尝试使用postman发送一个包含multipart/form-data的文件。
这是我的控制器:
@PostMapping
public ResponseEntity<Object> create(
@PathVariable Integer entityId,
@Validated FormDataRequest formData
) {
return new ApiResponseHandler(formData.getFile().getOriginalFilename(), HttpStatus.OK).response();
}
下面是DTO:
@Data
public class FormDataRequest {
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate startDate;
private MultipartFile file;
private List<EntryDTO> entries;
}
1.我的第一个问题是,我必须在请求中以camel的形式发送"startDate",以使其序列化。我希望能够以Snake的形式(start_date)发送它,以便它与我的API和Jackson配置的其余部分保持一致。
1.然后,我遇到了一个关于"entries"属性的序列化问题。以下是错误:
未能将类型为"java.lang.String"的属性值转换为属性"entries"所需的类型"java.util.List";嵌套异常是java. lang.非法状态异常:无法将类型为"java. lang. String"的值转换为属性"entries [0]"所需的类型"EntryDTO":找不到匹配的编辑器或转换策略
我试着用postman发送一个JSON:
1条答案
按热度按时间kgsdhlau1#
对于第一个问题,可以在setter方法中使用@JsonSetter(“start_date”)。
对于你的第二个问题,我通常使用@RequestPart MultipartFile文件,@RequestPart Employe作为例子,但是我见过像你这样直接Map到对象的代码,我不能真正解决这个问题,但是你可以尝试用ObjectMapper显式Map到你的列表