NEWS
Datenpunkte in json zusammenfassen
-
Hallo,
ich habe mit ein bisschen Unterstützung einiger Leute es hinbekommen, dass ich für meinen Abfahrtmonitor (Bus) alle relevanten Daten in Datenpunkte ablegen konnte.
Hier mal der Code, den ich jetzt verwende:
schedule('* * * * *', datenlesen); // jede minute var request = require('request'); var logging = true; createState('Verkehr.Aktualisieren', false, { desc: 'Werte aktualisieren', type: 'boolean', def: false, role: 'indicator' }); for(let i = 0; i < 4; i++) { createState('Verkehr.Richtung_xx.Startzeit'+i, 0, { }); createState('Verkehr.Richtung_xx.Verspaetung'+i, 0, { }); createState('Verkehr.Richtung_xx.Haltestelle'+i, 0, { }); createState('Verkehr.Richtung_xx.Linie'+i, 0, { }); createState('Verkehr.Richtung_xx.tats_zeit'+i, 0, { }); } function datenlesen() { //Zuhause nach Zentrum var link = 'https://vrrf.finalrewind.org/xxx/xxx.json?frontend=json&offset=1&platform=1' ; log('Verkehr Daten einlesen'); request(link, function (error, response, body) { if (!error && response.statusCode == 200) { var result; try{ result = JSON.parse(body); if (logging) log('Kein Fehler beim Einlesen Verkehr Daten'); } catch (e) { log('Parse Fehler (Roofi Modul):' + e); } if (result) { var Startzeit; var Verspaetung; var Haltestelle; var Linie; var TatsZeit; for(let j = 0; j < 4; j++) { //Startzeit if (logging) log(result.raw[j].sched_time); //Verspaetung if (logging) log(result.raw[j].delay); //Ziel Haltestelle if (logging) log(result.raw[j].destination); //Linie if (logging) log(result.raw[j].line); //Tatsächliche Zeit if (logging) log(result.raw[j].time); Startzeit = result.raw[j].sched_time; Verspaetung = result.raw[j].delay; Haltestelle = result.raw[j].destination; Linie = result.raw[j].line; TatsZeit = result.raw[j].time; setState("javascript.0.Verkehr.Richtung_xx.Startzeit"+j,Startzeit); setState("javascript.0.Verkehr.Richtung_xx.Verspaetung"+j,Verspaetung); setState("javascript.0.Verkehr.Richtung_xx.Haltestelle"+j,Haltestelle); setState("javascript.0.Verkehr.Richtung_xx.Linie"+j,Linie); setState("javascript.0.Verkehr.Richtung_xx.tats_zeit"+j,TatsZeit); } setState("javascript.0.Verkehr.Aktualisieren", false); setState("javascript.0.VIS.Overlay", 5); // setState("javascript.0.VIS.Overlay_iPhoneX", 5); } } else log('Fehler (Verkehr Daten Abfrage: ' + error); }); // Ende request log('Verkehr Daten eingelesen'); } datenlesen ();
Jetzt hätte ich aber gerne, dass diese Daten wieder in eine JSON zusammengefasst werden für meine Tabelle in vis. Wie kann ich das Umsetzen?
-
Geht es dir allgemein darum, wie du ein JSON aus Datenpunkten erstellen kannst. Grundsätzlich ist JSON ziemlich tief verankert in JS, wie es der Name ja vermuten lässt.
Du kannst einfach ein JSON Objekt initialisieren
let meinJSONObjekt = {}; // alternativ = new Object();
und dieses Objekt erweitern
meinJSONObjekt.zahl = 1; meinJSOnObjekt.zeichenkette = 'test';
wenn du dir das dann in lesbarer Form ausgeben möchtest:
console.log(JSON.stringify(meinJSONObjekt));
die Ausgabe wird in etwa so aussehen:
{ "zahl": 1, "zeichenkette": "test" }
beste Grüße
fox
-
danke, werde ich mir später mal anschauen ob ich das hinbekomme!