오랜만에 글을 쓴다...
spring 사용하면서 ajax 통신 사용 시 json 데이터를 가져올때 어떻게 해야할지 알아보자. (사실 안까먹으려고...)
var data = {
"데이터1": 데이터1,
"데이터2": 데이터2,
"데이터3": 데이터3,
}
$.ajax({
anyne: true,
type: "POST",
contentType: 'application/json',
url: "url",
dataType: "json",
data: JSON.stringify(data),
success: function (data) {
console.log(data);
}
});
이런 데이터를 보내려고한다고 예시를 들어보자.
그럼 스프링에서는 어떻게 받아야할까???
@PostMapping("url")
@ResponseBody
public boolean 함수이름(@RequestBody Map<String, Object> data) {
ObjectMapper mapper = new ObjectMapper();
List<MenuDTO> menuDTOList = mapper.convertValue(data.get("데이터1"), new TypeReference<List<DTOclass>>() {});
return true;
}
만약 데이터1이 json이라면? 위와같이 받아오면 편하다. mapper를 사용하여 dto클래스로 변경해주었다.
일반 string 같은 데이터라면?
아래와 같이 하면된다.
@PostMapping("url")
@ResponseBody
public boolean 함수이름(@RequestBody Map<String, Object> data) {
String 변수명 = (String) data.get("데이터2");
return true;
}
위와같이 해결이 가능하다.
매우 쉽다~~
'코딩 > Spring' 카테고리의 다른 글
JPA 저장을 했는데, 데이터가 없는 경우 (0) | 2022.11.10 |
---|---|
UnsatisfiedDependencyException,BeanCreationException,IllegalArgumentException [spring boot 에러] (1) | 2021.08.15 |
Spring boot) mybatis 사용하기(mysql) (1) | 2020.10.21 |
Spring message properties 메시지 설정하는 법 (1) | 2020.09.16 |