[ajax/spring] json array 형태로 데이터 전송

JESS YANG·2021년 7월 15일

웹 프로그래밍

목록 보기
1/1
//아래와 같은 json array 형태를 controller로 전송 한다.
var arr = [{"ed_tm":"18:42","idx":"day1","st_tm":"18:41"},{"ed_tm":"18:43","idx":"day2","st_tm":"18:42"}]

front

//1. formData 생성하고 append 해준다.
var arr = [{"ed_tm":"18:42","idx":"day1","st_tm":"18:41"},{"ed_tm":"18:43","idx":"day2","st_tm":"18:42"}];
var formData = new FormData();
formData.append('name', $("#add_name").val());
formData.append('age', $("#add_age").val());
formData.append('comments', $("#add_comments").val());
formData.append('abc', JSON.stringify(arr));

//2. ajax 설정 
$.ajax({
  type: "POST",
  url: "temp/ad",
  data: formData,
  dataType: "json",
  async: false,
  cache: false,
  contentType: false,
  processData: false,
  enctype: 'multipart/form-data',
  ...

Controller

//1. formData 생성하고 append 해준다.
...
public String doInsertTempInfo( HttpServletRequest request, HttpServletResponse response, AdProgramSearchInfo searchInfo, AdProgramInfo info) throws Exception {
	//array형태로 전송한 파라미터를 이름으로 갖고 온다.
	String jsonParam = request.getParameter("abc").replaceAll(""", "\"");
	JSONParser jsonParser = new JSONParser();
	Object jsonObj = jsonParser.parse(jsonParam);
	JSONArray jsonArray = (JSONArray) jsonObj;
	List<TempObj> list = new ArrayList<>();
	for(int i=0; i<jsonArray.size(); i++){
	//Gson을 통해서 각각의 값들을 객체에 매핑 시켜준다
    	TempObj obj = new Gson().fromJson(jsonArray.get(i).toString(), TempObj.class);
	list.add(obj);
}

0개의 댓글