2017-06-04 122 views
0

这个问题可能与sparkfun相当具体,但由于我在javascript方面的经验有限,我仍然希望将其作为一般性问题。从外部网站(sparkfun)检索json文件的一部分

我一直在使用后续HTML和JavaScript(d3.js)文件从sparkfun data server加载JSON数据:

的index.html

<!DOCTYPE html> 
<meta charset="utf-8"> 
<body> 
<script src="https://d3js.org/d3.v4.min.js"></script> 
<script> 

var data_sensor; 
var url = "https://data.sparkfun.com/output/w5nEnw974mswgrx0ALOE.json" 
d3.json(url, function (error,json) { 
    if (error) throw error; 
    data_sensor=json; 
    console.log(data_sensor) 
}) 
</script> 

</body> 

运行该脚本后,我将结束存储在变量data_sensor中的所有数据数组用于后分析。

我现在想要做的是创建一个仪表板,只下载和存储最新值。我明白我可以使用data_sensor中的第一个值(即data_sensor [0]),但随着数据的增长,这种方法变得效率很低。

谢谢!

回答

1

当我想加载JSON从什么地方我一直使用jQuery的:

进口的jQuery这样的:

<script src="jquery-3.2.1.min.js"></script> 

然后,你可以做这样的事情,让您的JSON文件:

var data_sensor; 
var url = "https://data.sparkfun.com/output/w5nEnw974mswgrx0ALOE.json" 
$.getJSON(url, function(data) { 
    data_sensor = data; 
    console.log(data_sensor) 
}); 

希望有帮助!

+0

谢谢杰克,我试过你的脚本,它说“ReferenceError:$未定义” –

+0

明白了。我需要先下载jQuery或使用CDN –

1

这里不是专家,但他们的文档状态达可以使用分页来获得数据的第一个250KB:

var url = "https://data.sparkfun.com/output/w5nEnw974mswgrx0ALOE.json?page=1"; 

你可以得到你的第一个对象/组数据,我恐怕有没有通用的方法来接收任何API响应的一部分 - 请求是请求,它可以根据体系结构向您发送所有可能的数据,从“OK”字符串到200MB数据。仔细阅读文档是你最好的选择。