1UnitedPower: Anfänger Frage JSON.parse()

Beitrag lesen

Hakuna matata!

Wie kann ich einfach alle aktiven Sensoren, ohne bekannte ID in ein Array speichern?

Die SesorID wird als Eigenschaftsname in dem JSON-Objekt hinterlegt, der Sesonstzustand wird in dem Wert zu diesem Eigenschaftsname hinterlegt. Hab ich das richtig verstande?

Du kannst alle Eigenschaftsnamen eines Objekts (also hier die SensorIDs) mit Object.getOwnPropertyNames( myObject ) auslesen. Aus diesem Array der SensorIDs, kannst du dann einfach ein Array der Sensor-Zustände machen, in dem du darüber mapst:

var sensors = Object.getOwnPropertyNames( obj ).map( function ( sensorId ) {  
   return obj[ sensorId ];  
});

Dann hast du allerdings nur die Sensor-Zustände und der Bezug zur SensorID ginge verloren. Du könntest die Map-Funktion so anpassen, dass du immer beides zur Verfügung hast:

var sensors = Object.getOwnPropertyNames( obj ).map( function ( sensorId ) {  
   return {  
      id : sensorId,  
      state : obj[ sensorId ]  
   }  
});
--
“All right, then, I'll go to hell.” – Huck Finn