2012-03-08 4 views
0

아래 코드를 사용하여 JSON 객체/배열 (전문 용어로보기에는 좋지 않음)을 성공적으로 반환했습니다.JSON 배열을 html로 변환

$(function(){ 
    $("#buildForm").click(function(e){ 
     e.preventDefault(); 
     var frm = $(document.buildForm); 
     var dat = JSON.stringify(frm.serializeArray()); 
     $.post(frm.attr("action"), {data:dat}, function(response) 
     { 
      var $dialog = $('<div></div>') 
      .html(response) 
      .dialog({ 
        autoOpen: false, 
        title: 'Build', 
        modal: true, 
        height: 400 
      }); 
      $dialog.dialog('open'); 

      // prevent the default action, e.g., following a link 
      return false; 
     });  
}); 
}); 

내가 많이 JS를 모르는

{"str_id":"1","str_name":"TC","tier_id":"1","buy_gold":"50000","buy_mana":"10000","res_build":"0","res_active":"0","res_owned":"0","timebuildmins":"500","timecollectmins":"30","timeminsformiss":"0","goldcollected":"1000","str_imageloc":"..\/img\/structures\/tc.png"} 

을 반환하지만 메신저 수행하여 배우려고 노력. 불행히도, 예를 들어 "str_name"만 표시하는 방법을 알아낼 수는 없습니다.

위에서 볼 수 있듯이 jquery UI에서 검색된 데이터를 JSON 형식으로 표시하는 팝업 창이 있습니다. 반환 된 데이터 비트를 가져 와서 표시 할 수 있어야합니다! 간단한 권리? 도와주세요!

답변

1

질문을 올바르게 읽는다면 실제 객체가 아닌 JSON 형식의 문자열을 반환했습니다. 그렇다면 JSON.parse() 메서드를 사용하여 접근 가능한 객체로 바꿔야합니다.

+0

감사합니다. 이것은 내가 필요한 것입니다. –

2

response.str_name을 사용하면 str_name 멤버의 값에 액세스 할 수 있습니다. 그러면 코드가 다음과 같이 보입니다. 당신이 전에 있었다 무엇

var $dialog = $('<div></div>') 
.html(response.str_name) 
.dialog({ 
     autoOpen: false, 
     title: 'Build', 
     modal: true, 
     height: 400 
}); 
$dialog.dialog('open'); 

(.html("response"))를 사용하면 문자열 "응답"에 HTML을 설정 한 것을 의미했다.

용어를 정리하십시오. 서버에서받은 것은 JSON 형식의 문자열 (예 : 올바른 JSON 표기법 인 문자열)입니다. 전통적으로 JSON 문자열을 구문 분석하여 조작 할 JavaScript 객체를 제공합니다. 그러나 jQuery는 지능적으로 JSON 응답을 감지하고이를 객체로 파싱했습니다. 따라서 response 매개 변수에서받는 것은 표준 JavaScript 객체입니다. 여전히 혼란 스럽다면 다음 게시물이 유용 할 것입니다. Javascript object Vs JSON

+0

고마워요! 제공된 링크는 매우 유익합니다. –