2013-05-12 32 views
5

Eine Firma, mit der ich arbeite, hat eine API für ihre Datenschutzrichtlinie und ihre Nutzungsbedingungen. Ich muss zwei verschiedene Seiten erstellen ... eine für die Datenschutzrichtlinie und eine für die Nutzungsbedingungen. Ich bin ziemlich neu in diesem und ich fühle mich wie ich bin so nah. HierWie erhalte ich JSON-Daten von einer externen URL?

ist die Art und Weise, dass die JSON empfangen wird (mit einigen Änderungen, um es zu anonymisieren):

{"code":200,"status":"Ok","data": 
    {"offset":0,"limit":20,"total":2,"target":"html_page","results":[ 
     { 
      "id":"6", 
      "title":"Privacy Policy", 
      "description":"Privacy Policy", 
      "html":"HTML CODE BLAH BLAH", 
      "tags":["privacy"] 
     }, 
     { 
      "id":"66", 
      "title":"License and TOU", 
      "description":"Terms of Use", 
      "html":"HTML CODE BLAH BLAH", 
      "tags":["terms"] 
     }] 
    } 
} 

Hier ist der Code Ich verwende:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Privacy Policy</title> 
</head> 
<body> 
    <div id="placeholder"></div> 
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
    <script> 
    $.getJSON('http://externalurl.com', function(external) { 
     var output="<ul>"; 
     for (var i in external.code.offset) { 
      output+="<li>" + external.html + "</li>"; 
     } 

     output+="</ul>"; 
     document.getElementById("placeholder").innerHTML=output; 
    }); 
    </script> 
</body> 
</html> 

Es ist nur eine leere Seite zurückkehren . Was mache ich falsch?

Antwort

0

Ich denke, es sollte sein:

$.getJSON('http://externalurl.com', function(external) { 
    var output="<ul>"; 
    for (var i = 0; i < external.data.results.length; i++) { 
     output+="<li>" + external.data.results[i].html + "</li>"; 
    } 

    output+="</ul>"; 
    document.getElementById("placeholder").innerHTML=output; 
}); 

Also zunächst sind Sie über das falsche Objekt iterieren, ist es external.data.results und nicht external.code.offset. Zweitens können Sie nicht mit for (var i in array) über ein Array iterieren.

3
$.getJSON('http://externalurl.com', function(external) { 
     var output = $("<ul />"); 

     $.each(external.data.results, function(i, result) { 
      $('<li />', {text : result.html}).appendTo(output); 
     }); 

     $('#placeholder').html(output); 
}); 
Verwandte Themen