form to JSON변환 질문입니다.

form to JSON변환 질문입니다.

QA

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"
}

 

제가 원하는 모양으로 나오게 하려면 어떻게 해야할까요?

이 질문에 댓글 쓰기 :

답변 1


let queryStr = $("#myform").serialize();

로 안되나요?

답변을 작성하시기 전에 로그인 해주세요.
전체 2,662
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT