아이해브퀘스천
70
2021-04-01 11:51:45
6
142

(다시질문) json데이터가 undiefined로 표출되는데 해결방법 부탁드립니다.



환경(표준프레임워크 버전 : 전자정부3.7(스프링4.2)

reset()함수 호출 시 아래 표가 표출되고 -> 표안에 ajax데이터를 넣는 프로그램을 구현중인데요.

값이 undefined로 보이네요.


controller단에서 디버그해서 데이터가 전달되는거 확인했습니다..


***********************소스**********************************

function reset(){

var user = {id:'홍길동' , pw:'1234', idx:${boardVO.idx}};  

var data = JSON.stringify(user);

$.ajax({

        url:"<c:url value='/mgmtajax2.do'/>",

        method:"post",

        /* data: JSON.stringify(data), */

        data: data,

        contentType: "application/json",

        success: function(data) {

       alert(JSON.stringify(data)); // alert내용은 : {"resultList1":[{"idx":63,"seq":1,"reply":"1","writer":"관리자","indate":1617023752000}]}


              resultHtml(data);


        },

        error: function() {


            alert("통신실패");

        }

    })    

}

  function resultHtml(data){

var html = "<table border = '1'>";

html += "<tr>";

html += "<th>indx</th>";

html += "<th>seq</th>";

html += "<th>reply</th>";

html += "<th>writer</th>";

html += "<th>indate</th>";

html += "</tr>";

$.each(data, function(key, value){

html += "<tr align = 'center'>";

html += "<td>" + value.idx + "</td>";

html += "<td>" + value.seq + "</td>";

html += "<td>" + value.reply + "</td>";

html += "<td>" + value.writer + "</td>";

html += "<td>" + value.indate + "</td>";

html += "</tr>";

});

html += "</table>";

$("#display").empty();

$("#display").append(html);

}

</script>

</head>

<body>


<div id="display">

데이터출력

</div>

</body>

</html>


0
  • 답변 6

  • 295
    2021-04-01 11:56:12

    이렇게 한번 해보세요.

    resultHtml(data);  -> resultHtml(data.resultList1);

  • 아이해브퀘스천
    70
    2021-04-01 12:00:18

    네 감사합니다. 지금해보겠습니다.

  • 아이해브퀘스천
    70
    2021-04-01 12:04:44

    사실 아래와 같이 코드를 구현했는데 alert가 undefined 표출해서 저렇게 시도는 안했었는데

    var sPerson = JSON.stringify(data);

    alert(sPerson.resultList1); 


    아래 코드와 같이 구현하니 데이터가 표출되네요 성공했습니다 감사합니다.

    resultHtml(data.resultList1); 


    위와 아래와 차이점이 궁금하네요 ㅜㅠ


  • naucika
    146
    2021-04-01 12:26:49 작성 2021-04-01 12:27:38 수정됨

    JSON.stringify(Object) =>  객체를 JSON 형태의 "문자열"로 변환합니다. 

    즉 sPerson = "xxxxxxxxxx" 라는 문자열이 되었기 때문에, 하위 멤버등은 가지고 있지 않습니다.




  • 페코옹
    1k
    2021-04-01 12:30:45

    함수의 사용법을 잘 모르시고 그냥 막 사용해서 그래요.


    JSON.stringfy는 js객체를 json 문자열으로 바꿔주는 거에요.

    JSON.stringify(data); 하면

    data에 있는 값이 문자열로 변경되면서 기존의 js객체가 가지고 있던 resultList1 propery가 다 날라가고 순수하게 문자열 관련된 method나 propery들만 남게되요

    그러니까 문자열로 변경해놓고 data.resultlist1를 치면 아무것도 안나오죠


    구글에 JSON.stringify라고 치면 뭐하는 함수인지 어떻게 사용하는지 다 잘나오는데 이런거 디테일하게 공부 안하고 대충 검색해서 코드 복붙하니까 해결이 안되죠 ㅎㅎ

  • 아이해브퀘스천
    70
    2021-04-01 12:44:53 작성 2021-04-01 12:46:16 수정됨

    naucika 님 감사합니다 명확하게 이해되었습니다.

    페코옹 님 네 부족함을 많이 느낍니다.

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