요약
List객체를 서버로 전달할 땐
괜히 JSON형태로 형태로 만들지 말자
엑셀업로드 기능을 구현하는 중 발생한 이슈였다.
// 생략
api.post(
url,
{reqBody : data.map(mapExcelRowToCustomerReg)}
).then
// 생략
대충 엑셀파일을 읽어서
{Key : "value",Key : "value"} 형식의 데이터를 List로 만들어서 전달하는 코드이다.
분명 요청의 페이로드에 데이터가 예쁘게 들어가 있는 모습을 확인하였는데
서버단에서는 원하는 dto형태로 받을 수가 없었다.
@PostMapping("/item")
public String excelPackageItem(@RequestBody List<DTO> dtos) {
return service.excelReg(dtos);
}
전달하려는 데이터를 아래처럼 바꾸니 정상적으로 진행되었다.
api.post(
url,
reqBody : data.map(mapExcelRowToCustomerReg)
).then
//생략
클라이언트는 { "key" : [Array] } 라는 JSON 형태로 데이터를 보냈고
서버에서는 List<Dto> 형태로 값을 받으려고 하니 데이터 형이 불일치해서 발생한 문제였다.