【问题标题】:How do I load data from an external URL using JSON?如何使用 JSON 从外部 URL 加载数据?
【发布时间】:2018-06-03 07:58:21
【问题描述】:

我想显示来自这个 url http://api.open-notify.org/astros.json/ 的名字

这是我的代码,

var astrosAPI = "http://api.open-notify.org/astros.json/";

$.getJSON(astrosAPI, function (json) {
    var name = json.results[0].formatted_name;
    console.log('Name : ', name);
});

我想用我的h3 标签显示它。我是 JSON 和 jQuery 的新手。我不断得到

index.html:631 Uncaught TypeError: Cannot read property '0' of undefined error

【问题讨论】:

  • 看看 JSON.parse() 方法,这会将你的 json 转换为一个对象
  • json 显然没有 results 属性。
  • @SeanT 这根本没用,而且不正确/具有误导性。 json 在这种情况下不会是 json。

标签: javascript jquery json dom


【解决方案1】:

您必须使用success() 或done() 函数。

var url = "http://api.open-notify.org/astros.json/";
$.getJSON(url).success(function (json) {
  var name = json.people[0].name
  console.log('Name : ', name)
})

【讨论】:

    【解决方案2】:

    如果您能够访问特定端点并且没有被 CORS 阻止,则它必须是数据格式。

    查看数据,您的数据中没有名为results 的属性。尝试调试该行以查看变量json 的正确格式。它可能是string,您需要调用JSON.parse(json); 才能将其正确格式化为对象。

    你应该可以做到:

    var astrosAPI = "http://api.open-notify.org/astros.json/";
    
    $.getJSON(astrosAPI, function (json) {
        var name = json.people[0].name;
        console.log('Name : ', name);
    });
    

    【讨论】:

    • 谢谢它现在有效。如何将名称显示到我的 h3 标签。我试过

    • 我想出了如何将字符串转换为对象。 $('#name').text(name);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2011-06-24
    相关资源
    最近更新 更多