테스트 사이트 - 개발 중인 베타 버전입니다

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개

3년 전

</p>

<p>let queryStr = $("#myform").serialize();</p>

<p>

로 안되나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

라균
3년 전
post로 던지는데 받는곳에서 post데이터 제한이 걸려있어서 짤라서 보내려고 합니다... ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인