NEWS
JSON parse - ich schaffe es nicht...
-
Hallo, mit blockly schaffe ich viel, aber JS is zu schwierig...
JSON ausgabe ist
{"event":"onBatteryLevelChanged","deviceId":"1835eb40-ad9325d5","level":100}Ich habe mehrere Versuchen gemacht und mich viele Lösungen angeschaut, aber ich kriege es nicht hin den wert level raus zu kriegen.
Script funktioniert nicht...
on({id: 'mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5', change: "any"}, function (obj) { try {obj = JSON.parse(getState('mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5').val); } catch (e) { console.error('Cannot parse: ' + getState('mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5').val); return; } setState('mqtt.0.fully.event.onBatteryLevelChanged.Battery_%', obj.level); console.log(obj.level); });Wer versteht was ich falsch mache?
Erwin -
Hallo, mit blockly schaffe ich viel, aber JS is zu schwierig...
JSON ausgabe ist
{"event":"onBatteryLevelChanged","deviceId":"1835eb40-ad9325d5","level":100}Ich habe mehrere Versuchen gemacht und mich viele Lösungen angeschaut, aber ich kriege es nicht hin den wert level raus zu kriegen.
Script funktioniert nicht...
on({id: 'mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5', change: "any"}, function (obj) { try {obj = JSON.parse(getState('mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5').val); } catch (e) { console.error('Cannot parse: ' + getState('mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5').val); return; } setState('mqtt.0.fully.event.onBatteryLevelChanged.Battery_%', obj.level); console.log(obj.level); });Wer versteht was ich falsch mache?
ErwinErstens würde ich direkt das
objverwenden, das deiner Funktion übergeben wird (nicht nochmals ein getState() machen).Zweitens, kannst du mal ein deiner
function (obj) {als erstes einlog(obj.val);machen und schauen, was da im Log ausgegeben wird? Ist es wirklich ein JSON oder sieht es anders aus? -
Erstens würde ich direkt das
objverwenden, das deiner Funktion übergeben wird (nicht nochmals ein getState() machen).Zweitens, kannst du mal ein deiner
function (obj) {als erstes einlog(obj.val);machen und schauen, was da im Log ausgegeben wird? Ist es wirklich ein JSON oder sieht es anders aus?@UncleSam Jetzt brauche ich schon Unterstutzung... Ich kriege schon deinen Vorschlag nicht hin
-
Erstens würde ich direkt das
objverwenden, das deiner Funktion übergeben wird (nicht nochmals ein getState() machen).Zweitens, kannst du mal ein deiner
function (obj) {als erstes einlog(obj.val);machen und schauen, was da im Log ausgegeben wird? Ist es wirklich ein JSON oder sieht es anders aus? -
@paul53 sagte in JSON parse - ich schaffe es nicht...:
@UncleSam sagte:
als erstes ein log(obj.val); machen
log(obj.state.val);Sorry, ja richtig. Mein Fehler.
@UncleSam
Super, erledigtvar Read = 'mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5' var Write = 'javascript.0.Nexus7.Battery%' on({id: Read, change: "any"}, function (obj) { try {obj = JSON.parse(getState(Read).val); } catch (e) { console.error('Cannot parse: ' + getState(Read).val); return; } setState(Write, obj.level); log(obj.level); }); -
@UncleSam
Super, erledigtvar Read = 'mqtt.0.fully.event.onBatteryLevelChanged.1835eb40-ad9325d5' var Write = 'javascript.0.Nexus7.Battery%' on({id: Read, change: "any"}, function (obj) { try {obj = JSON.parse(getState(Read).val); } catch (e) { console.error('Cannot parse: ' + getState(Read).val); return; } setState(Write, obj.level); log(obj.level); });@erwinberlin sagte in JSON parse - ich schaffe es nicht...:
getState(Read)... kannst du noch ersetzen mit
obj.stateersetzen, damit wird der Code noch einfacher. Wie gesagt wird inobjbereits der gesamte State mitgeliefert.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden