2013-04-28 8 views
1

나는 거의 모든 것을 시도했지만 이것을 알아낼 수 없습니까?jQuery JSON의 특정 데이터를 변수로 가져 오기

JSON을 사용하여 HTML 응용 프로그램의 목록보기를 만들고 있는데이 부분이 정상적으로 작동했습니다. 그러나 동일한 JSON 호출에서 다른 데이터를 보낼 수 있기를 원하지만 일부 변수에 넣을 수는 있지만 실패 할 수 있습니다. 여기

내가 노력하고 무엇 :

dataUrl = 'http://mypage.com/playermenu.php?callback=?&userid=' + userid, 
dataCallback = function(data){ 
    //var content = data.list.join(""); 
    //var now = data.menutime; // HERE I WANT THE MENUTIME TO BE PUT INTO A VARIABLE // 
    alert("Date: "+data.menutime); 
    $('#userbar').html(data.profile); // FETCHING USERS DATA FOR PROFILEBAR // 
    $('#games').html(content).listview('refresh'); 
} 

$.getJSON(dataUrl, dataCallback); 

위의 경고가 있습니다 : 날짜 : 정의되지 않은

내 JSON은 다음과 같습니다

([{"menutime":"2013-04-28 15:00:50"},{"profile":"troels"}]) 

이와 도움을 기대.

답변

1

왜 서버가 ()를 추가 :-) 사전에

감사합니다? 이로 인해 $.getJSON()에 의해 거부 된 JSON이 유효하지 않게됩니다.

브라우저에서 JavaScript 콘솔을보십시오. 다음과 같은 오류가 있어야합니다.

SyntaxError: Unexpected token (

이 코드는 고유 한 서버 코드입니까? 그렇다면 올바른 JSON을 생성하도록 수정해야합니다. 당신이 잘못된 JSON 형식을 사용하여 부착하는 경우

, 당신은 $.get() 또는 $.ajax() 대신 $.getJSON()의 사용 "text" 형식으로 지정해야합니다 :

$.get(dataUrl, dataCallback, 'text'); 

지금 콜백 함수가 일반 텍스트로 나쁜 JSON을 받게됩니다. 따라서 dataCallback 상단에서 불필요한 괄호를 제거하고 나머지 JSON 데이터를 파싱 할 수 있습니다.

var data = $.parseJSON(data.match(/^\((.*)\)$/)[1]); 
관련 문제