You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.3 KiB
C++

#include <Arduino.h>
// #define GSON_NO_HASH
#include <GSON.h>
void setup() {
Serial.begin(115200);
Serial.println();
gson::string gs; // создать строку
gs.beginObj(); // начать объект
gs.addString("str1", F("value")); // добавить строковое значение
gs["str2"] = "value2"; // так тоже можно
gs["int"] = (int32_t)12345; // целочисленное
gs.beginObj("obj"); // вложенный объект
gs.addFloat(F("float"), 3.14); // float
gs["float2"] = 3.14; // или так
gs["bool"] = false; // Bool значение
gs.endObj(); // завершить объект
gs.beginObj("obj2");
gs.beginArr("array");
gs.addFloat(3.14);
gs += "text"; // в массиве можно так
gs += 12345;
gs += true;
gs.endArr();
gs.endObj();
gs["last"] = "kekpek";
gs.endObj(); // завершить объект
gs.end(); // завершить пакет
Serial.println("==== PACKET ====");
Serial.println(gs);
Serial.println();
gson::Parser p(10);
p.parse(gs);
Serial.println("==== READ ====");
Serial.println(p[0]);
Serial.println(p["str2"]);
Serial.println(p[F("int")]);
Serial.println(p["obj"]["float"]);
Serial.println(p["obj2"]["array"][0]);
Serial.println(p["obj2"]["array"][1]);
Serial.println(p["obj2"]["array"][2]);
Serial.println(p["no-key"]);
Serial.println(p["no-key"]["no-key"]);
Serial.println();
p.hashKeys();
Serial.println("==== HASH ACCESS ====");
Serial.println(p[sutil::SH("str2")]);
Serial.println(p[sutil::SH("obj")][sutil::SH("float")]);
Serial.println();
Serial.println("==== CHUNKS ====");
for (int i = 0; i < p.length(); i++) {
Serial.print(i);
Serial.print(". [");
Serial.print(p.readType(i));
Serial.print("] ");
Serial.print(p.key(i));
Serial.print(":");
Serial.print(p.value(i));
Serial.print(" {");
Serial.print(p.parent(i));
Serial.println("}");
}
Serial.println();
Serial.println("==== STRINGIFY ====");
p.stringify(&Serial);
}
void loop() {
}