【问题标题】:How do I get JSON data from an external URL?如何从外部 URL 获取 JSON 数据?
【发布时间】:2013-05-06 09:08:04
【问题描述】:

与我合作的一家公司为其隐私政策和使用条款提供 API。我需要创建两个不同的页面……一个用于隐私政策,一个用于使用条款。我在这方面还很陌生,我觉得我很接近

以下是接收 JSON 的方式(进行了一些编辑以使其匿名):

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

这是我正在使用的代码:

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

它只是返回一个空白页。我做错了什么?

【问题讨论】:

    标签: jquery html json


    【解决方案1】:
    $.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);
    });
    

    【讨论】:

      【解决方案2】:

      我认为应该是:

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

      所以首先你迭代了错误的对象,它是external.data.results 而不是external.code.offset。其次,您不能使用for (var i in array) 遍历数组。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 1970-01-01
        相关资源
        最近更新 更多