form to JSON변환 질문입니다.
라균
3년 전
조회 3,455
</p>
<p><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></p>
<p>
위와 같은 form 이 있으면 제가 원하는 json 모양은 아래 json모양처럼 나오길 원합니다.
{</p>
<p> "main":[0,1,2,3]</p>
<p> , "options": {</p>
<p> "0":[0]</p>
<p> ,"1":[0]</p>
<p> ,"2":[0,1]</p>
<p> ,"3":[0]</p>
<p> }</p>
<p>}</p>
<p>
구글링으로 찾은 결과
</p>
<p> $.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;
};</p>
<p> </p>
<p>let queryStr = $("#myform").serializeObject();</p>
<p>
serializeObject 를 사용해서 하면 아래와 같이 key 이름에 [] 배열표시가 들어가고 options가 배열이 아닌 문자열로 되는경우가 생깁니다.
{</p>
<p> "main[]":[0,1,2,3]</p>
<p> , "options[0][]": "0"</p>
<p> , "options[1][]": "0"</p>
<p> , "options[2][]": [0,1]</p>
<p> , "options[3][]": "0"</p>
<p>}</p>
<p>
제가 원하는 모양으로 나오게 하려면 어떻게 해야할까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인