I'm practicing with ArduinoJson library. I have created this simple example, where I serialize (put tohgeter into a Json object) two numbers.
In the second part of the code i would like to extract from this serialized object the elements inside this object and print them individually, how can I do this?
this is the code:
#include <ArduinoJson.h>
String Js;
int a;
int b;
void setup() {
Serial.begin(9600);
}
void loop() {
//Sensor Reading (Adafruit)
a = 10 + random(1,5);
b = 30 - random(1,5);
delay(1000);
DynamicJsonDocument doc(100);
doc["Random_Numb_a"] = a;
//long Number_b = doc["Random_Numb_b"] = b;
serializeJson(doc,Js);
Serial.println(Js);
Serial.println("Deserialization part");
StaticJsonDocument<100> DeSerial;
//deserialization
deserializeJson(DeSerial,Js);
//Serial.println(DeSerial);
Serial.println(DeSerial["Random_Numb_a"]);
}
I solved this way:
#include <ArduinoJson.h>
String Js;
int a;
int b;
int i;
void setup() {
Serial.begin(9600);
}
void loop() {
String Js;
Js = ""; //reinizializziamo Js, altrimenti continua ad immagazzinare dati, senza questo comando.
i = i + 1;
a = 10 + random(1,5);
b = 30 - random(1,5);
Serial.println("Serialization Part: (Object Js) ");
//StaticJsonDocument <100> doc; //2 Stack Mem
DynamicJsonDocument doc(100); //1 Heap Mem
doc["Random_Numb_a"] = a;
doc["Random_Numb_b"] = b;
serializeJson(doc,Js);
Serial.print("from Js: ");
Serial.println(Js);
Serial.println("");
delay(4000);
Serial.println("Deserialization part: (Object DeSerial) ");
DynamicJsonDocument DeSerial(100);
//deserialization
DeserializationError err = deserializeJson(DeSerial,Js);
long Num_a = DeSerial["Random_Numb_a"];
long Num_b = DeSerial["Random_Numb_b"];
Serial.print("from DeSerial --> Num_a: ");
Serial.println(Num_a);
Serial.print("from DeSerial --> Num_b: ");
Serial.println(Num_b);
Serial.println("");
delay(4000);
}