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.

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

Ein Gedanke zu „ioBroker JavaScript – JSON verarbeiten

  • 24. Juli 2021 um 10:43
    Permalink

    Halo Matthias,

    könntest du mir einmal erläutern wie ich aus einem String bestimmte Werte in eine Variable schreiben kann. Hab jetzt schon Stunden bei Google verbracht aber leider nix brauchbares gefunden.

    Das ist ein Teil meines String:
    {„status“:“OK“,“data“:{„statistics“:[{„time“:1626622200,“reportedHashrate“:30163328,“currentHashrate“:38178069.626666665,“validShares“:32,“invalidShares“:0,“staleShares“:0,“activeWorkers“:1}

    Ich hole die Daten per Parser von einer Website ab.

    Gruß
    Stefan

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.