728x90
๐ JS
// ์์ ๋ฐฐ์ด ์์ฑ
var testArr = [];
// for ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ์์ฑ ๋ฐ ๋ฐฐ์ด์ ์ถ๊ฐ
for (let i = 0; i < ids.length; i++) {
// ๊ฐ์ฒด ์์ฑ
var obj = {
id: ids[i],
name: names[i]
};
// ๋ฐฐ์ด์ ์ถ๊ฐ
testArr.push(obj);
}
var testObj = {
parId: 'par',
childArr: testArr
};
$.ajax({
url: '/api/requestBodyTest',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(testObj),
success: function (data) {
console.log(data);
},
error: function (jqXHR, textStatus, errorThrown) {
console.error('Error:', textStatus, errorThrown);
}
});
๐ model
public class MyModel {
private String parId;
private List<Child> childArr;
// Getters ๋ฐ Setters
public String getParId() {
return parId;
}
public void setParId(String parId) {
this.parId = parId;
}
public List<Child> getChildArr() {
return childArr;
}
public void setChildArr(List<Child> childArr) {
this.childArr = childArr;
}
}
public class Child {
private String id;
private String name;
// Getters ๋ฐ Setters
}
๐ controller
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
// @RestController // ์ด๊ฑฐ ์ ์ฐ๊ณ ํด๋น ๋งค์๋์ @ResponseBody ๋ฃ์ด๋ ๋จ!
@RequestMapping("/api")
public class MyController {
@ResponseBody
@PostMapping("/requestBodyTest")
public ResponseEntity<MyModel> requestBodyTest(@RequestBody MyModel model) {
// ๋ชจ๋ธ์ ๋ก๊ทธ๋ก ์ถ๋ ฅ (๋๋ฒ๊น
์ฉ๋)
System.out.println(model);
// ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์์์ ์๋ฆฌ๋ ์๋ต ๋ฐํ
return ResponseEntity.ok(model);
}
/////// ์ถ๊ฐ ///////
@ResponseBody
@PostMapping("/requestBodyChildArrListTest")
public String requestBodyChildArrListTest(@RequestBody ArrayList<childVO> childVOList) {
return childVOList.toString();
// [ChildVO[id=1, name=test1], ChildVO[id=2, name=test2] ``` ]
}
}
์ถ์ฒ :
๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์ํ ๋ธ๋ก๊ทธ ์ ๋๋ค.
์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์!
๊ฐ์ฌํฉ๋๋ค.

728x90