JSON dla IoT
Znaczna część komunikacji w internecie odbywa się przy użyciu formatu JSON. Jest on prosty, lekki i czytelny. W związku z tym, jeżeli chcę, aby moje urządzenie było otwarte na świat, muszę wspierać ten format. Mógłbym sam bawić się w parsowanie JSONa do obiektu i na odwrót, ale rozsądniejszym wydaje się być użycie gotowej biblioteki. Zatem zapraszam do lektury wstępnego opisu biblioteki JSON dla IoT czyli ArdunioJson.
Jak zacząć
Instalacja może odbywać się na dwa sposoby. Pierwszym jest użycie LibraryManagera dla Arduino IDE. Jednak jak już kiedyś pisałem, że zdecydowałem się na inne środowisko programistyczne. Drugim natomiast jest pobranie odpowiedniego pliku ZIP, a następnie rozpakowanie go do katalogu lib w projekcie. Możesz go pobrać z tej strony lub bezpośrednio stąd(v5.11.1).
Następnym krokiem jest zaimportowanie biblioteki oraz zadeklarowanie bufora.
#include "ArduinoJson.h"
StaticJsonBuffer<200> jsonBuffer;
Jest on punktem startowym, na którym można wywoływać odpowiednie metody. Najważniejszymi są:
- parseObject() – parsuje obiekt, przykładowo : „{’firstname': 'Jerzy', 'lastname': 'Wickowski'}”.
- parseArray() – parsuje tablicę, przykładowo: „[’hallo',’world']”.
- createObject() – tworzy obiekt pozwalający na stworzenie obiektu JSON.
- createArray() – tworzy obiekt pozwalający na stworzenie tablicy JSON.
Parsowanie
#include "ArduinoJson.h"
StaticJsonBuffer<200> jsonBuffer;
char* json = "{'isBusy':true,'deviceId':7,'comment':'foo'}";
JsonObject& root = jsonBuffer.parseObject(json);
bool isBusy= root["isBusy"];
int deviceId= root["deviceId"];
const char* comment = root["comment"];
Serial.println(isBusy);
Serial.println(deviceId);
Serial.println(comment);
Serializacja
StaticJsonBuffer<200> jsonBuffer;
JsonObject &root = jsonBuffer.createObject();
root["isBusy"] = false;
root["deviceId"] = 13;
root["comment"] = "bar";
char *output = (char *)malloc(100);
root.printTo(output, 100);
Serial.println(output); //{"isBusy":false,"deviceId":13,"comment":"bar"}
Zakończenie
Jak widzisz, dzięki użyciu ArduinoJson, bliblioteki JSON dla IoT, świat otwiera swoje cyfrowe drzwi. Powyżej opisałem tylko jak zacząć używać tej biblioteki. Więcej informacji można znaleźć na oficjalnej stronie projektu.
0 Komentarzy