form to JSON변환 질문입니다.
본문
<form id ="myform">
<input type="text" name="main[]" value="0"/>
<input type="text" name="main[]" value="1"/>
<input type="text" name="main[]" value="2"/>
<input type="text" name="main[]" value="3"/>
<input type="text" name="options[0][]" value="0"/>
<input type="text" name="options[1][]" value="0"/>
<input type="text" name="options[2][]" value="0"/>
<input type="text" name="options[2][]" value="1"/>
<input type="text" name="options[3][]" value="0"/>
</form>
위와 같은 form 이 있으면 제가 원하는 json 모양은 아래 json모양처럼 나오길 원합니다.
{
"main":[0,1,2,3]
, "options": {
"0":[0]
,"1":[0]
,"2":[0,1]
,"3":[0]
}
}
구글링으로 찾은 결과
$.fn.serializeObject = function()
{
let o = {};
let a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
let queryStr = $("#myform").serializeObject();
serializeObject 를 사용해서 하면 아래와 같이 key 이름에 [] 배열표시가 들어가고 options가 배열이 아닌 문자열로 되는경우가 생깁니다.
{
"main[]":[0,1,2,3]
, "options[0][]": "0"
, "options[1][]": "0"
, "options[2][]": [0,1]
, "options[3][]": "0"
}
제가 원하는 모양으로 나오게 하려면 어떻게 해야할까요?
!-->!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.