NEWS
JSON parsing (verschachtelt)
-
@leif1 dein letztes Beispiel ist richtig. Probier mal nachstehendes.
let values; try { values = JSON.parse(getState('mqtt.0.SmartHome.Wohnzimmer.Co2.SENSOR').val); } catch (e) { console.error('Cannot parse: ' + getState('mqtt.0.SmartHome.Wohnzimmer.Co2.SENSOR').val); return; } let co2 = values.MHZ19B.CarbonDioxide;
J.A.R.V.I.S.
-
Danke @J-A-R-V-I-S
Nun bekomme ich im log immer
(856) Error in callback: SyntaxError: Identifier 'co2' has already been declared
-
@leif1 sagte:
Identifier 'co2' has already been declared
Dann lösche die Deklaration in Zeile 17
//variabele erstellen fuer meine 3 beispiel objecte var co2;
-
Danke vielmals euch beiden, nun läuft es. Mir war nicht so ganz bewusst das "let" ebenfalls eine Variable deklariert. Man lernt nie aus
-
@leif1 das freut mich zu hören. Es gibt auch einige Unterschiede zwischen den beiden Möglichkeiten. Falls dich das näher interessiert, kannst du dir mal folgenden Artikel durchlesen (Unterschiede var und let). Ich würde sagen, dass let die schönere Variante ist.
J.A.R.V.I.S.
-
@J-A-R-V-I-S
um die Verwirrung komplett zu machen ,
dass würde auch gehen:const tVal = {"Time":"2019-11-28T16:45:07","MHZ19B":{"Model":"B","CarbonDioxide":786,"Temperature":23.0},"TempUnit":"C"} const { MHZ19B: { CarbonDioxide: co2 } } = tVal; if(co2) log(co2);
guten nacht
-
@Nahasapee Ist allerdings für eine einzelne Variable nicht unbedingt leserlicher
-
@AlCalzone In der Kürze liegt die Würze.
-
@Nahasapee kürzer ist es auch nicht
const co2 = values.MHZ19B.CarbonDioxide; const { MHZ19B: { CarbonDioxide: co2 } } = values;
Imo macht diese Form der Destrukturierung nur bei mehreren Variablen Sinn.
-
@AlCalzone sagte in JSON parsing (verschachtelt):
@Nahasapee kürzer ist es auch nicht
Mein Frau sagt immer auf die Länge kommt es nicht an!