[ Javascript ] Form.serialize를 json형식으로 변환하기

2020. 5. 28. 12:21언어/JS

728x90
반응형
SMALL
jQuery.fn.serializeObject = function() {
    var obj = null;
    try {
        if (this[0].tagName && this[0].tagName.toUpperCase() == "FORM") {
            var arr = this.serializeArray();
            if (arr) {
                obj = {};
                jQuery.each(arr, function() {
                    obj[this.name] = this.value;
                });
            }//if ( arr ) {
        }
    } catch (e) {
        alert(e.message);
    } finally {
    }
 
    return obj;
};


출처: https://cofs.tistory.com/184 [CofS]

이렇게 공통으로 쓰는 함수를 만들고

 

var data = {
  	     "formData" : 
            	$("#form").serializeObject()
			};
var url = "/abcd/efg.do";
$.ajax({
	type:"POST",
    data:JSON.stringify(data),
    dataType:"json",
    url:url,
    contentType:"application/json",
    success:function(result){
    }
});

이런 식으로 serializeObject 함수를 구현하여 호출하면 string 형식도 아니고 key 값이 중복되어도 상관이 없습니다.

 

key : value 형태의 object가 만들어지기 때문에

 

controller에서 @RequestParam Map<String, String> map 이렇게 파라미터를 선언해 주면

 

원하시는 대로 사용 가능합니다.

728x90
반응형