#include <ArduinoJson.h>
constexpr unsigned int MAX_DOC_SIZE {2000};
char JSONmessageBuffer[MAX_DOC_SIZE];
// template <typename T, const size_t ITEMS> void jsonAddArray(JsonObject &jdoc, const char *name, const T (&adata)[ITEMS]) {
// JsonArray arr = jdoc.createNestedArray(name);
// for (auto val : adata) { arr.add(val); }
// }
template <typename T, const size_t ITEMS> void jsonAddArray(JsonObject &jdoc, const char *name, const T (&adata)[ITEMS]) {
for(unsigned int i = 0; i < ITEMS; ++i) {
jdoc[name][i] = adata[i];
}
}
void setup() {
Serial.begin(115200);
float a[] {1.25, -2.44, 1.556};
double b[] {1.42, 1.91, -1.1};
int c[] {2, 7, 4, 3};
char d[][10] {"Eins", "Drei", "Sieben", "Fünfzehn"};
StaticJsonDocument<MAX_DOC_SIZE> doc;
JsonObject singleItem = doc.to<JsonObject>();
singleItem["name"] = "Name";
singleItem["ort"] = "Ort";
jsonAddArray(singleItem, "array_a", a);
jsonAddArray(singleItem, "array_b", b);
jsonAddArray(singleItem, "array_c", c);
jsonAddArray(singleItem, "array_d", d);
singleItem["Ende"] = "Letzter Wert";
serializeJsonPretty(doc, Serial);
Serial.println();
serializeJson(doc, JSONmessageBuffer);
Serial.println(JSONmessageBuffer);
}
void loop() {}