성회장
113
2016-04-09 21:45:36
4
1897

jqGrid 사용할때.. 자바스크립트 객체 키값 정렬문제...


jqGrid를 사용해서 목록을 표출한 후,

목록에 있는 값들을 엑셀로 다운로드 받는 기능을 구현하고 있는데,,,,


해결못하는 문제가하나생겼습니다.ㅠㅠ

목록에는 현재


위치(문자) 2012(숫자) 2013(숫자) 2014(숫자)

서울                3                 4                    5

경기도           4                    5                  6


이렇게 들어있는데


제일위의 타이틀을 꺼내올경우 위치,숫자,숫자,숫자인데,,

목록에 들어있는 내용을 자바스크립트 Map -> var test = {}; 요기에넣어줬는데


var test ={

 2012: 3

2013: 4

2015: 5

위치: 서울

}

이런식으로 들어오더군요...

즉,, 객체에 키값이 위치(문자) 보다 숫자가 먼저 오게 정렬되는것같은데,,,


저는 

var test = {

위치: 서울, 

2012: 3,

2013: 4,

2015: 5,

}

이렇게 목록 그대로 자바스크립트 객체를 만들고싶거든요.......


이것또한..몇일째 해결을못해서 멘붕이네요(초보개발자입니다...)


해결방법좋은걸 알려주시면 정말 감사하겠습니다!!!


0
  • 답변 4

  • 제타건담
    6k
    2016-04-10 00:09:04

    음..이거는 jqgrid 값을 json 데이터를 이용해서 표현하는거 같은데..

    원래 json은 key, value 구조라 순서는 사실 의미가 없습니다..왜냐면 key로 매핑해서 찾아가는 개념이기 때문에..순서는 json을 이용해서 값을 찾아가는 과정에서 그때 자신이 정한 순서대로 찾으면 되니까요..

    그런 관점에서 보면 jqgrid도 그런 개념을 충실히 따른 것으로 아는데요..

    저는 jqgrid를 써보지를 않아서 제가 틀리게 알고 있는 것일수도 있지마는..

    여기글을 보면 json을 이용해서 json 값을 jqgrid로 매핑할때..

    colModel을 지정하는 부분이 있습니다..

    링크해놓은 홈페이지에선

    colModel : [
                        { name : 'id',        width:40,  align:'center'},
                        { name : 'name',      width:80,  align:'left'  },
                        { name : 'age',       width:80,  align:'left'  },
                        { name : 'sex',       width:80,  align:'right' }, 
                        { name : 'position',  width:50,  align:'right' }
                ],

    이렇게 되어있으나..님과 같은 구조에서는


    colModel : [
                        { name : '위치',        width:40,  align:'center'},
                        { name : '2012',      width:80,  align:'left'  },
                        { name : '2013',       width:80,  align:'left'  },
                        { name : '2014',       width:80,  align:'right' }, 
                        { name : '2015',  width:50,  align:'right' }
                ],

    이렇게 되는거죠..이러면 colModel에서 넘겨받은 json의 key값으로 사용된 위치, 2012, 2013, 2014, 2015 이것들을 사용해서 값을 가지고 오는 형태가 될겁니다..

    올려주신 구조에서 2014는 없지만 제가 2014를 넣은 것은 표에서 2014를 표현해야 하는데 값이 없어서 표현을 못할 경우까지 잡아넣은겁니다..colModel에서는 2014가 있지만 정작 데이터 구조에서는 이 key가 존재하지 않을 경우 에러를 내뱉거나 아니면 null 개념으로 빈 값으로 표시할 수도 있을겁니다..


    다만 한가지..이 json key가 정적으로 고정된 형태가 아닌 동적으로 구현이 되고 이에 맞춰 jqgrid도 동적으로 진행되야 하는 상황이면..음..그때는 좀 고민해야 할듯..근데 불가능하지는 않을듯 싶네요..

  • asd
    16k
    2016-04-10 07:04:35

    저도 jqgrid를 써보진 않아서 거기에 어떤 옵션이있는지는 모르겠지만 기본적으로 자바스크립트의 객체 키 순서를 변경하고싶으시면 새로 객체를 만들어서 정렬된 키로 재정의해야합니다.

  • 성회장
    113
    2016-04-10 21:09:07

    모두 소중한답변들이네요 ㅠㅠ ㅓㄴ무감사합니다...

    리치킹님..혹시 정렬된 키로 재정의한다는건 무슨내용인가요..?? ㅠㅠ

  • asd
    16k
    2016-04-11 07:40:06

    var obj = {b : 1, c : 2, a : 3};

    이런객체가 있는데 얘의 키를 정렬하고싶으면 obj를 조작해서는 할수가없고 새로 객체 만들어야한다는 거죠

    var obj2 = {a : obj.a, b : obj.b, c : obj.c};

    이런식으로요.

    자세한건 참고해보세요.

    https://www.google.co.kr/?gws_rd=cr&ei=SiG6UveEKo6FiAfYnICACg#q=javascript+key+sort

  • 로그인을 하시면 답변 을 등록할 수 있습니다.