2016-11-27 14 views
1

JavaScriptビジュアライゼーションコードを用意しました。必要なデータはすべて1つのフォルダに格納されているため、ビジュアライゼーションは単純なHTTPサーバー経由で動作します。しかし、データベース(今はJSONファイル)からデータ入力を取得する必要がある場合は、動作させることができませんでした。DBから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| 

Sample Data

テラツールのドキュメントは、データにアクセスするために、index.htmlをコードは使用してメッセージ・ハンドラを有していなければならないと述べている:

$(window).on('message', handler) 

及びデータはハンドラ内でアクセスすることができます使用:

event.originalEvent.data 

私のローカルサーバーでは、JavaScri CSVファイルからデータをフェッチPTのコードはこのように書き:

<script> 
    Plotly.d3.csv('3d-scatter.csv', function(err, rows){ 
    function unpack(rows, key) { 
     return rows.map(function(row) 
     { return row[key]; }); 
    } 
</script> 

私はちょうど私がJSONデータをフェッチし、変換するために使用する必要がありますどのようなコードを知りたいと思った(以前は「3D-scatter.csv」で今JSONデータデータベース)を取得します。これは、event.originalEvent.dataハンドラから取得されます。


データを含むハンドラが見つかりました。

の下にある「メッセージ」イベントハンドラ:データはこのパスで見つけることができます(.handler.elem.visJson.data)

私はvisJson.dataを呼び出すときに、コンソールには、配列を出力します。

答えて

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 
    }) 
+1

このコードは、質問に答える方法および/または、なぜそれが答えの長期的な価値を向上させるという問題を解決に関する追加のコンテキストを提供するかもしれないが。 – kayess

関連する問題