2016-11-27 4 views
1

Ich habe einen JavaScript-Visualisierungscode vorbereitet, die Visualisierung funktioniert über einen einfachen HTTP-Server, da sich alle notwendigen Daten in einem Ordner befinden. Jedoch konnte ich es nicht zum Laufen bringen, wenn die Dateneingabe von einer Datenbank (jetzt JSON-Datei) geholt werden muss.Wie hole ich JSON-Daten von der DB?

Ich habe die folgenden Beispieldaten (csv-Datei) in Teradata-Datenbank geladen.

|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

Die Dokumentation von Teradata-Tool festgestellt, dass die Daten zugreifen können, müssen index.html Code Nachrichtenhandler verwenden:

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

und die Daten können innerhalb des Handlers zugegriffen werden mit:

event.originalEvent.data 

In meinem lokalen Server, der JavaScri pt-Code, der Daten aus csv holt geht so:

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

Ich wollte nur wissen, welchen Code sollte ich JSON-Daten zu holen und konvertieren werden (zuvor ‚3d-scatter.csv‘, jetzt ein JSON-Daten in eine Datenbank), die aus dem event.originalEvent.data-Handler abgerufen wird.


Ich fand den Handler mit Daten.

Unter 'Nachricht' Event-Handler: Daten können in diesem Pfad (.handler.elem.visJson.data)

So finden, wenn ich visJson.data nennen, die Konsole gibt ein Array.

Antwort

1

Sie können den Browser Fetch API verwenden. Die globale Funktion fetch() kann Ressourcen aus dem Netzwerk beziehen und eine Promise der HTTP-Antwort zurückgeben.

Benutzen Sie es wie folgt aus:

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

Während dieser Code die Frage beantworten kann, zusätzlichen Kontext bereitstellt, wie und/oder warum es das Problem löst langfristigen Wert der Antwort des verbessern würde. – kayess

Verwandte Themen