2016-08-26 2 views
0

외부 JSON 파일의 데이터를 읽고 표시하고 HTML을 사용하여 표시하려고합니다.JSON에서 데이터 읽기 및 html로 표시

내가 지금까지 가지고 :

자바 스크립트 :

var xmlhttpRoles = new XMLHttpRequest(); 
var urlRoles = "../portal/getResults.php"; 

xmlhttpRoles.onreadystatechange = function() { 
    if (xmlhttpRoles.readyState == 4 && xmlhttpRoles.status == 200) { 
     var rolesArray = JSON.parse(xmlhttpRoles.responseText); 
     functionRoles(rolesArray); 
    } 
}; 
xmlhttpRoles.open("GET", urlRoles, true); 
xmlhttpRoles.send(); 

function functionRoles(arr) { 
    var out = ""; 
    var i; 
    alert(arr); 
    for(i = 0; i < arr.length; i++) { 
     out += '<p>' + arr.results[i].Title +'</p>'; 
    } 
    document.getElementById("id02").innerHTML = out; 
} 

getResults.php 파일 출력 :

{ 

"results": [ 
    { 
     "DocId": 2204, 
     "Title": "Lorem ipsum dolor sit amet, consectetur", 
     "Locations": [ 
      { 
       "State": "New York", 
       "City": "" 
      }, 
      { 
       "State": "New York", 
       "City": "New York City" 
      } 
     ], 
     "Topics": [ 
      3, 
      7, 
      11 
     ], 
     "PublicationYear": "2011", 
     "Organization": "New Yorks Times", 
     "WebLocation": "www.google.com", 
     "Description": "Lorem Ipsum" 
    } 
], 
"TotalMatches": 1 

} 

HTML : 내가하려고 한

<div id="id02"></div> 

티의 가치를 얻다. 그 문제에 대한 다른 어떤 요소도 없으며 실패했습니다. 내가 뭘 잘못하고 있는지 모르겠다.

+0

게시 한 JSON이 유효하지 않습니다. –

+0

지금 편집했습니다. 미안합니다. – user3715910

+0

경고를받는 중입니까? 그 시점에서 데이터가 괜찮습니까? – wazz

답변

0

JSON은 개체이며 개체에는 길이 속성이 없습니다. 조건을 변경해야한다고 생각합니다.

for(i = 0; i < arr.results.length; i++) { 
    out += '<p>' + arr.results[i].Title +'</p>'; 
} 
+0

@ user3715910이 말이 맞습니다. TotalMatches에 액세스하려면 arr.TotalMatches를 사용해야합니다. – wazz

+0

이것이 성공했습니다! 이전의 조건은 json 일 때 [{ "ID : 1,"PublicationYear ":"N \/A "}, {"ID ": 2,"PublicationYear ":"2016 "}, {" ID ": 3,"발행인 수 ":"2013 "}, {"ID ": 4,"발행인 수 ":"2012 "}, {"ID ": 39,"PublicationYear ":"1975 " : 40, "PublicationYear": "1972"}] 그래서 나는 같은 방법을 시도하고있었습니다. 답변 해주셔서 감사합니다! – user3715910