2013-05-12 28 views
5

Một công ty mà tôi đang làm việc có API cho Chính sách bảo mật và Điều khoản sử dụng của họ. Tôi cần phải tạo hai trang khác nhau ... một cho Chính sách bảo mật và một cho Điều khoản sử dụng. Tôi khá mới ở đây và tôi cảm thấy mình là rất gần với.Làm cách nào để nhận dữ liệu JSON từ một URL bên ngoài?

Đây là cách mà các JSON được nhận (với một số chỉnh sửa để ẩn tên):

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

Dưới đây là đoạn code tôi đang sử dụng:

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

Nó chỉ trả lại một trang trống . Tôi đang làm gì sai?

Trả lời

0

Tôi nghĩ rằng nó nên là:

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

Vì vậy, đầu tiên bạn đang lặp lại trên các đối tượng sai lầm, đó là external.data.results và không external.code.offset. Thứ hai, bạn không thể lặp qua một mảng với 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); 
}); 
Các vấn đề liên quan