Arduino JSON mit der PubSubClient - Bibliothek

Hallo zusammen, bei meinem aktuellen Projekt, erhalte ich über MQTT ein JSON Paket mit 2 Informationen. Das sieht ungefähr so aus:
{
"Person": "A",
"Medikament": "1"
}

Nun habe ich die PubSubClient - Bibliothek eingebunden und auf der ArduinoJson Seite auf folgende Hilfestellung gestossen.

void callback(char* topic, byte* payload, unsigned int length) {
  StaticJsonDocument<256> doc;
  deserializeJson(doc, payload, length);
  // use the JsonDocument as usual... (**Wie weiter?)**
}

Kann mir nun jemand weiterhelfen, wie ich zu meine JSON - Daten auslesen kann?
Besten Dank für eure Hilfestellungen!

1 Like
doc["Person"]

sollte "A" enthalten und

doc["Medikament"]

sollte "1" enthalten.

Siehe Beispiel

char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}";

DynamicJsonDocument doc(1024);
deserializeJson(doc, json);

const char* sensor = doc["sensor"];
long time          = doc["time"];
double latitude    = doc["data"][0];
double longitude   = doc["data"][1];

Von der Doku ArduinoJSON https://arduinojson.org/

Dort gibt es auch noch ausführlichere Beispiele und sogar ein Tutorial dazu.

Ja ganz genau, so stelle ich mir das vor. In der Zwischenzeit habe ich dieses Beispiel auch entdeckt.

void callback(char* topic, byte* payload, unsigned int length) {
  StaticJsonDocument<256> doc;
  deserializeJson(doc, payload, length);
  const char* person=doc["Person"];
  int medikament= doc["medikament"];
}

Kommt das so etwa hin?
Dann hätte ich in der Variable Person den Wert A und in der Variable medikament 1

Dann darf der Wert von medikament aber nicht in Gänsefüßchen stehen.
"1" ist ein char eine Zeichenkette
1 ist ein integer

Besten Dank! Deine Antworten haben mich schon ein wenig weitergebracht.

Falsch. "1" ist eine Zeichenkette aus '1' und '\0'.
'1' wäre ein char.

Gruß Tommy

1 Like

Und wie immer hast du Recht.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.