[{'fruit1':'apple', 'fruit2':'banana'}]
위와같은 형태를 서버에서 List<Map<String, Object>>로 받게 하려면
1. 클라이언트 - javascript
let param = [{'fruit1':'apple', 'fruit2':'banana'}];
$.ajax({
type:'post'
, contentType:'application/json'
, data: JSON.stringify(param)
, url: '/test'
, success: function(data) {
alert(data);
}, error:function(e) {
alert("error: " + e);
}
});
- Request의 Method는 GET이 아닌 메소드로
(Request Body에 JSON을 담아 보낼 것이기 때문이다. GET은 Request Body가 없다.)
- Request의 content가 json으로 넘어갈 것이라는 것을 명시
- JSON.stringify(param) 함수로 JSON 문자열로 보낸다.
참고로 저 위에는 없지만 dataType은 request에 대한 정보가 아니라 response에 대한 정보의 키이므로
dataType에 JSON이라고 명시해봤자 결과 응답값이 JSON이라는 뜻이다.
2. 서버 - Controller
@ResponseBody
@PostMapping("/test")
public List<Map<String, Object>> test(
@RequestBody List<Map<String, Object>> param) {
return param;
}
- Request Method는 Post로 받았다.
- JSON으로 넘어온 내용은 Request Body에 담겨져 오므로 @RequestBody 어노테이션을 붙여서 받고
원하는 형태의 객체로 받으면 된다.
'개발 > Spring' 카테고리의 다른 글
[SpringBoot] AJAX로 내려온 date 응답값 timezone이 UTC로 나오는 현상 (0) | 2022.07.11 |
---|---|
[SpringBoot / JSP] AJAX로 여러 이미지 파일 업로드 서버에 전송하기 (0) | 2021.09.27 |
STS 4에서 jsp 사용하기 (0) | 2021.04.10 |
"Building UI model" has encountered a problem. (1) | 2021.01.11 |
@PathVariable 여러개 주소 못찾는 경우 (0) | 2016.09.29 |