본문 바로가기
Spring/Spring Framework

AJAX로 복잡한 JSON 객체 타입을 DTO로 받는 방법

by YellowCow 2022. 9. 27.

아래와 같이 Primitive Data Type 말고도

List와 같은 타입들을 포함한 데이터를 AJAX를 이용하여 전송받는 경우

@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserManagementDto {  
    private String personUniqueNumber;
    private String authority_code;
    private List<String> authorityCodeList;
    private Integer group_id;
    private List<Integer> groupIdList;
    private String addModifyReason;
    private String use_yn;
}

 

아래와 같이  JSON.stringify 함수로

JSON Object Data를 String으로 변환하여 전송하면 받을 수 있다

$.ajax({
    url: "/user/userManagement/modifyUserInfo",
    type: "post",
    contentType: "application/json",
    data:JSON.stringify(modifiedData),
    async:false,
    success:function(data, textStatus, jqXHR){

    },
    error: function(jqXHR, textStatus, errorThrown ){

    }
})

 

AJAX에서 JSON.stringify 함수로 데이터를 변환하여 보내고

Controller에서 Parameter에 @RequestBody 어노테이션을 붙여주면

DTO에 바로 매핑된다.

@ResponseBody
@PostMapping("/userManagement/modifyUserInfo")
public HttpStatus modifyUserInfo(@RequestBody UserManagementDto userManagementDto) {
    if (userManagementDto!=null) {
        //update User Info
        userManagementService.modifyUserInfo(userManagementDto);
    }

    return HttpStatus.OK;
}

댓글