#include "ArduinoJson.h"
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Setup finished");
}
void loop() {
Serial.println("Simple element serialization: ");
const size_t CAPACITY = JSON_OBJECT_SIZE(3);
StaticJsonDocument<CAPACITY> docSimple;
String simpleJsonStr;
docSimple["A0"] = 23;
docSimple["A1"] = 232;
docSimple["A3"] = 978;
serializeJson(docSimple, simpleJsonStr);
Serial.println(simpleJsonStr); // {"A0":23,"A1":232,"A3":978}
Serial.println("****************");
Serial.println("Array elements serialization: ");
const size_t capacity = JSON_ARRAY_SIZE(3) + 3*JSON_OBJECT_SIZE(2);
StaticJsonDocument<capacity> doc;
JsonObject obj = doc.createNestedObject();
obj["pin"] = "A0";
obj["value"] = 23;
obj = doc.createNestedObject();
obj["key"] = "A1";
obj["value"] = 232;
obj = doc.createNestedObject();
obj["key"] = "A3";
obj["value"] = 978;
String ArrayJsonStr;
serializeJson(doc, ArrayJsonStr);
Serial.println(ArrayJsonStr);
Serial.println("--------------");
Serial.println("--------------");
Serial.println("Simple element deserialization: ");
Serial.println("Source: "+simpleJsonStr);
const int capacitySimpleDes = 2*JSON_OBJECT_SIZE(3);
StaticJsonDocument<capacitySimpleDes> docSimpleDes;
DeserializationError err = deserializeJson(docSimpleDes, simpleJsonStr);
if (err) {
Serial.print(F("deserializeJson() failed with code "));
Serial.println(err.f_str());
}
int a=docSimpleDes["A0"];
Serial.println("A0 je "+String(a));
String arrayJsonStr=R"([{"pin":"A0","value":23},{"pin":"A1","value":232},{"pin":"A3","value":978}])";
Serial.println("Nested elements deserialization: ");
Serial.println("Source: "+arrayJsonStr);
const int capacityNestedDes = JSON_ARRAY_SIZE(3) + JSON_OBJECT_SIZE(3)*2;
StaticJsonDocument<capacityNestedDes> docNestedDes;
DeserializationError NestErr = deserializeJson(docNestedDes, arrayJsonStr);
if (err) {
Serial.print(F("deserializeJson() failed with code "));
Serial.println(NestErr.f_str());
}
int val=docNestedDes[1]["value"];
String pin=docNestedDes[1]["pin"];
Serial.println(pin);
Serial.println(val);
JsonObject jObj = docNestedDes[0];
Serial.println(String("On pin ")+jObj["pin"].as<String>()+String(" is value ")+jObj["value"].as<String>());
/*
//ak nie su zname parametre:
Serial.println("Zistovanie klucov a hodnot:");
JsonObject objSimpleDes = docSimpleDes.as<JsonObject>();
for (JsonPair p : objSimpleDes) {
const char* key=p.key().c_str();
auto v = p.value().as<const char*>();
Serial.println(String(key));
//Serial.println(p.value());
//Serial.println(v);
}
*/
delay(1000);
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}