smarthome-tricks.de

ioBroker JavaScript – JSON verarbeiten

In diesem Artikel zeige ich Dir, wie Du in einem JavaScript ein JSON-String verarbeiten kannst.

Für ein aktuelles Smart-Home Projekt musste ich in einem JavaScript ein JSON-String (JavaScript Object Notation) parsen und die einzelnen Werte weiterverarbeiten. Über ein lokales LoRa-Netzwerk lasse ich mir von entfernten Sensoren Temperatur- und Luftfeuchtigkeitswerte in ioBroker übertragen. Die Sensorinformationen werden dazu per JSON-Zeichenkette über MQTT an ioBroker übermittelt. Die JSON-Zeichenkette hat folgendes Format:

{"name":"SensorOutdoor1", "temp":4.5, "hum":58}

Mit der JSON-Zeichenfolge wird der Name des Sensors, die Temperatur sowie die Luftfeuchtigkeit übermittelt. Für die weitere Verarbeitung und spätere Anzeige in der ioBroker Visualisierung muss die JSON-Zeichenfolge jetzt entsprechend geparsed werden. Hierfür gibt es bereits eine Standard-Funktionalität in JavaScript.

Über die JSON.parse() Methode wird aus der übergebenen JSON-Zeichenkette ein JavaScript Objekt erzeugt. Über den Punkt-Operator können wir dann auf die einzelnen Eigenschaften des JavaScript-Objekts zugreifen. Die Eigenschaften sind hier identisch mit den Namen aus der JSON-Zeichenkette. Im folgenden Code wird aus der oberen JSON-Zeichenkette ein JavaScript-Objekt generiert.

try { 
    obj = JSON.parse(value);
    var name = obj.name;
    var temp = obj.temp;
    var hum = obj.hum;
  } catch (e) {
    return;
  }

Wichtig ist hierbei der Try-Catch Block, der im Fehlerfall den Fehler abfängt und eine entsprechende Fehlerbehandlung durchführt. Fehler können z.B. dann auftreten, wenn die JSON-Zeichenkette nicht valide (Sonderzeichen, Übertragungsfehler, fehlerhafte Messwerte NaN, …) ist und somit kein JavaScript Objekt generiert werden kann. In unserem Fall wird einfach die JavaScript-Funktion verlassen und kein weiterer Code ausgeführt.

Ich hoffe ich konnte Dir mit diesem Artikel zeigen, wie einfach Du in JavaScript JSON-Strings verarbeiten kannst. Über Kommentare, Fragen oder Anregungen freue ich mich.

Die mobile Version verlassen