#include <ArduinoJson.h>
// Define a flexible data structure to store JSON data
struct MyData {
String name;
int age;
String city;
// Add more fields as needed
};
void setup() {
// JSON data in different formats
const char* jsonStr1 = "{\"name\":\"John\",\"age\":30}";
const char* jsonStr2 = "{\"name\":\"Alice\",\"city\":\"Paris\"}";
// Deserialize JSON data into MyData objects
MyData data1 = deserializeJsonToMyData(jsonStr1);
MyData data2 = deserializeJsonToMyData(jsonStr2);
// Access and use the data
Serial.begin(9600);
Serial.print("Data 1 - Name: ");
Serial.println(data1.name);
Serial.print("Data 1 - Age: ");
Serial.println(data1.age);
Serial.print("Data 2 - Name: ");
Serial.println(data2.name);
Serial.print("Data 2 - City: ");
Serial.println(data2.city);
}
// Function to deserialize JSON into a MyData object
MyData deserializeJsonToMyData(const char* jsonString) {
MyData data;
DynamicJsonDocument doc(200); // Adjust the size as needed
// Deserialize JSON
DeserializationError error = deserializeJson(doc, jsonString);
if (!error) {
// Extract values from JSON
data.name = doc["name"].as<String>();
data.age = doc["age"].as<int>();
data.city = doc["city"].as<String>();
// Add more fields as needed
} else {
// Handle deserialization error
Serial.print("Deserialization failed: ");
Serial.println(error.c_str());
}
return data;
}
void loop() {
// Your code here
}