NEWS
JSON Daten auswerten und darauf reagieren
-
Moin Moin,
ich bin dabei ein Script zu schreiben um meine HUE Lampen auslesen.
Ich will JS lernen und da kommen mir die Lampen gerade recht.
Antworten wie, nutzte doch den Adapter bringt mich nicht weiter.
Ich habe die betroffenen Zeilen kommentiert.
Bin über jede Hilfe dankbar die Zeilen zu vervollständigen.
Wenn ich "if(JSON.parse(body)[0].error.type=='3'){" mache und das ist nicht vorhanden,
stürzt alles ab.
Kann mir einer sagen, wie ich dort das error handling am besten angehe ?
Mein Code:
//1234567345 // ------------------------------------------------------------------------------------------ var http = require('request'); var options = { uri: "http://>ip>/api/>apikey>/lights/3", method: "GET", json: "", }; request(options, function(error, response, body) { console.log('error Normal '+error); console.log('response Normal '+response); // Das ist JSON console.log('body Normal '+body); // Das ist ein String console.log('response STRING '+JSON.stringify(response)); // Umwandlung von JSON in String if(!error){ console.log('Verbindung konnte aufgebaut werden'); switch (response.statusCode){ case 200: // OK console.log('Verbindung wurde akzeptiert'); //Wenn ich einen Fehler bekomme, weil das nicht vorhanden ist, stürtz alles ab // if(JSON.parse(body)[0].error.type=='3'){ // console.warn('Lampe nicht vorhanden'); // } // else{ // console.log('Lampe vorhanden'); // } // Der Error wird als array ausgegeben // Dieser muss zuerst korrekt umgewandelt werden // var errortyp = JSON.parse(body)[0].error.type; // console.log('Error Type: '+errortyp); break; default: console.error('Verbindung wird NICHT akzeptiert!') } } else{ console.error('Verbindung konnte NICHT aufgebaut werden!'); } //var json = JSON.parse(body); //var name = (json.name); //var state = (json.state.on); //var bri = parseInt(json.state.bri); //var hue = parseInt(json.state.hue); //var sat = parseInt(json.state.sat); //var ct = parseInt(json.state.ct); //console.warn('Status von ' +name +' ist: ' +state); //console.warn('Helligkeit von ' +name +' ist: ' +bri); //console.warn('Hue von ' +name +' ist: ' +hue); //console.warn('Sat von ' +name +' ist: ' +sat); //console.warn('CT von ' +name +' ist: ' +ct); }); // ------------------------------------------------------------------------------------------
body bei einem error:
[{"error":{"type":3,"address":"/lights/30","description":"resource, /lights/30, not available"}}]
Mit freundlichen Grüßen
Kevin