2013-05-12 21 views
5

Una società con cui sto lavorando ha un'API per la loro Informativa sulla privacy e le Condizioni d'uso. Devo creare due pagine diverse ... una per l'informativa sulla privacy e una per le condizioni d'uso. Sono abbastanza nuovo in questo, e mi sento come se fossi così vicino allo.Come ottengo i dati JSON da un URL esterno?

Ecco il modo in cui il JSON ricevuto (con alcune modifiche per rendere anonimi esso):

{"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"] 
     }] 
    } 
} 

Ecco il codice che sto usando:

<!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> 

E 'solo restituendo una pagina vuota . Che cosa sto facendo di sbagliato?

risposta

0

penso che dovrebbe essere:

$.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; 
}); 

Quindi, prima si effettua l'iterazione l'oggetto sbagliato, è external.data.results e non external.code.offset. In secondo luogo, non è possibile eseguire iterazioni su un array con for (var i in array).

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); 
}); 
Problemi correlati