我已经准备好了一个JavaScript可视化代码,可视化工作通过简单的HTTP服务器,因为所有必要的数据都在一个文件夹中。但是,如果需要从数据库(现在是JSON文件)获取数据输入,我无法使其工作。
我已将以下示例数据(csv文件)加载到teradata数据库中。
|x1. . . . . |y1. . . . .|z1. . . . . |x2. . . . . |y2. . . . .|z2. . . . . |
|-0.858927763|0.121607854|-0.067815693|-0.100387679|0.142522011|-0.085021698|
|0.759678102 |1.670849337|0.389506443 |-0.841098362|0.745253687| 0.07724956 |
|1.617835159 |0.671663712|0.676541754 |-0.086900337|1.162505997| 0.822100957|
|1.878302821 |0.985942302|1.756579077 |-0.418153016|2.471764891| 0.234493023|
teradata工具的文档声明,要访问数据,index.html代码必须使用以下消息处理程序:
$(window).on('message', handler)
可以使用以下方法在处理程序内访问数据:
event.originalEvent.data
在我的本地服务器中,从csv获取数据的JavaScript代码如下所示:
<script>
Plotly.d3.csv('3d-scatter.csv', function(err, rows){
function unpack(rows, key) {
return rows.map(function(row)
{ return row[key]; });
}
</script>
我只是想知道我应该使用什么代码来获取和转换从event.originalEvent中提取的JSON数据(之前的#3d; scatter.csv&#39;,现在是数据库中的JSON数据) .data处理程序。
我发现包含数据的处理程序。
在&#39;消息&#39;事件处理程序:可以在此路径中找到数据(.handler.elem.visJson.data)
所以当我调用visJson.data时,控制台会输出一个数组。
答案 0 :(得分:1)
您可以使用浏览器Fetch API。 fetch()
全局函数可以从网络获取资源,返回HTTP响应的Promise
。
像这样使用:
fetch("http://host/endpoint.json")
.then(res => res.json())
.then(data => {
// data is an array of object,
// iterate over it and create an in-memory CSV
// or verify if Plotly.d3 can be fed directly this array
})