Javascript 如何通过p5js中的URL从JSON文件加载数据?

Javascript 如何通过p5js中的URL从JSON文件加载数据?,javascript,json,processing,p5.js,Javascript,Json,Processing,P5.js,我正在观看关于从URL加载JSON的youtube教程,并尝试: function setup() { loadJSON("http://api.open-notify.org/astros.json", gotData,'jsonp'); } function gotData(data) { for(var i = 0; i<data.number;i++) print(data.people[i].name); } 函数设置(){ loadJSO

我正在观看关于从URL加载JSON的youtube教程,并尝试:

function setup() {
  loadJSON("http://api.open-notify.org/astros.json", gotData,'jsonp');
}

function gotData(data)
{
  for(var i = 0; i<data.number;i++)
    print(data.people[i].name);
}
函数设置(){
loadJSON(“http://api.open-notify.org/astros.json“,gotData,'jsonp');
}
函数gotData(数据)
{

根据
loadJSON
调用中的第三个参数(
'jsonp'
),对于(var i=0;i),您试图将
astros.json
作为资源加载

然而,
astros.json
是一个简单的json,而不是JSONP

{"number": 3, "people": [{"craft": "ISS", "name": "Chris Cassidy"}, {"craft": "ISS", "name": "Anatoly Ivanishin"}, {"craft": "ISS", "name": "Ivan Vagner"}], "message": "success"}
此外,数据类型必须位于回调之前,并且根据以下条件,数据类型也是可选的:

loadJSON(路径[jsonpOptions],[datatype],[callback],[errorCallback])

loadJSON(路径,数据类型,[callback],[errorCallback])

loadJSON(路径,回调,[errorCallback])

因此,请尝试使用值
'json'

loadJSON("http://api.open-notify.org/astros.json", 'json', gotData);
或者只是没有它:

loadJSON("http://api.open-notify.org/astros.json", gotData);

我复制并粘贴了你的代码,至少对我来说工作正常。没有错误,我可以在浏览器(google chrome)的控制台中看到内容/数据

在我的一张草图中,我收到了与您描述的相同的错误消息,但我四处阅读发现,在我的json地址中,它写为“https://”,应该是“http://”,没有“s”。这解决了我的问题

另一个问题是:您是否使用本地主机?Internet浏览器的安全性一直在提高,这可能是导致错误的原因


也许您应该在p5编辑器中尝试这段代码,看看是否得到相同的结果。

无论是否使用
jsonp
参数,您的代码都可以工作,但您需要在一台计算机上运行它

丹尼尔·希夫曼有一个详细的计划

此外,您还可以安装,它将使用处理IDE为您启动本地web服务器

  • 按下处理草图窗口右侧的Java(和向下箭头)按钮
  • 按添加模式…
  • 选择p5.js模式by,然后按Install
  • 安装后,您可以将代码粘贴到新的p5.js模式处理草图中并运行它。这将为您启动本地web服务器,并在默认浏览器中打开页面

    (要进行更改,我建议在处理中按save,然后刷新页面,因为再次按run将启动另一个本地web服务器)


    或者,您可以尝试扩展

    谢谢。我只尝试了url和callback:loadJSON(“url”,gotData),但没有成功。我尝试了您建议的:loadJSON(“url”,“json”,gotData)。但是,也没有成功。