2013-08-24 10 views
1

저는 WordPress에 웹 사이트를 만들었으며 개발중인 웹 앱용 데이터를 검색하기 위해 wordpress json API를 사용하고 있습니다. json API가 정상적으로 작동합니다. http://danielvivancos.com/edu/wordpress/?json=1 내 Json 파일이 있습니다. 하지만 이제 getjson jquery 메서드를 사용하여 HTML 페이지에서 인쇄하려고합니다. 먼저 json 파일의 정보를 div에 표시하려고 노력하고 있지만 작동하지 않는 이유를 모르겠습니다.JSON 파일에서 데이터를 가져올 수 없습니다.

$(document).ready(function(){ 
$("#btn382").click(function(){  

    $.ajaxSetup({ cache: false }); 

    $.getJSON("http://danielvivancos.com/edu/wordpress/?json=1&count=1", function(data){ 
     var html = []; 


     $.each(data.posts.author, function(index, author){   
      html.push("id : ", author.id, ", ", 
         "slug : ", author.slug, ", ", 
         "name : ", author.name, "<br>"); 
     }); 


     $("#div381").html(html.join('')).css("background-color", "orange"); 
    }).error(function(jqXHR, textStatus, errorThrown){ /* assign handler */ 
     /* alert(jqXHR.responseText) */ 
     alert("error occurred!"); 
    }); 
}); 
}); 

을 물론 나는 #의 div381가 만든이 : 여기 내 스크립트를 확인할 수 있습니다. 내가 뭘 잘못하고 있는지 모르겠지만 정말로 붙어 있습니다. 도움이 될 것입니다!

EDIT : 콘솔 오류 : '길이'가 정의되지 않은 속성을 읽을 수 없습니다.

솔리드 : 나는 플러스 기호에 대한 혼수 상태를 변경하고 답변 중 하나에서 설명하는 것처럼 파일을 반복하는 방식을 변경했습니다.

+0

danielvivancos.com 도메인 또는 도메인 사용 CORS에 스크립트인가? 그렇지 않다면 JSONP를 사용해야한다. – jcubic

+0

대신 JS 콘솔을 연 상태에서'console.log (jqXHR);'를 사용하십시오. –

+2

'{'는 기능 (데이터)보다 뒤떨어져 있습니까? –

답변

0

JSON 파일의 posts 속성은 array입니다.

author 속성에 액세스하려면 먼저 해당 배열을 반복해야합니다!

$.each(data.posts, function(i, post) { 
    var author = post.author; 
}); 
1

IT는 posts 유형 배열되고 첫 번째 요소 author 포함 해시 보인다.

는 다시 시도

$.each(data.posts[0].author, ... 

UPDATE

html.push("status : ", data.status, ", ", 
    "count : ", data.count, ", ", 
    "pages : ", data.pages, "<br>"); 
$.each(data.posts, function(index, post){ 
    html.push("id : ", post.author.id, ", ", 
    "slug : ", post.author.slug, ", ", 
    "name : ", post.author.name, "<br>"); 
}); 
+0

당신이 말하는 것과 콘솔 오류가 사라졌지만 데이터가 표시되지 않습니다. 나는 코드를 단순화했으며 $ .each (data, function (index, post) { html.push ("status :", post.status, ",", "count :", post 페이지 수 : "
") : http://danielvivancos.com/edu/directebre_app_jquerymobile/에서이 페이지를 확인하고 JSON 버튼을 눌러주세요. 이해할 수 없습니다. 왜 아무 것도 표시하지 않는 이유는 무엇입니까? – ERed

+1

'data'는 해시입니다. 데이터의 'each'는 키 - 값 쌍을 반복하고 생성합니다 (index = status, post = "ok"). , (index = count, post = 1) 등값을 인쇄하려면 '각'외부에서 '각'블록을 이동하십시오. 'author' 키에 접근하려면 각'data.post' 배열 항목을 반복하고 항목의'author' 키를 가져와야합니다. 나는 내 대답을 apdated. – phts

관련 문제