// ArduinoJson - arduinojson.org // Copyright Benoit Blanchon 2014-2018 // MIT License // // This example shows the different ways you can use Flash strings with // ArduinoJson. // // Use Flash strings sparingly, because ArduinoJson duplicates them in the // JsonBuffer. Prefer plain old char*, as they are more efficient in term of // code size, speed, and memory usage. #include void setup() { #ifdef PROGMEM // <- check that Flash strings are supported DynamicJsonDocument doc; // You can use a Flash String as your JSON input. // WARNING: the content of the Flash String will be duplicated in the // JsonBuffer. deserializeJson(doc, F("{\"sensor\":\"gps\",\"time\":1351824120," "\"data\":[48.756080,2.302038]}")); JsonObject obj = doc.as(); // You can use a Flash String to get an element of a JsonObject // No duplication is done. long time = obj[F("time")]; // You can use a Flash String to set an element of a JsonObject // WARNING: the content of the Flash String will be duplicated in the // JsonBuffer. obj[F("time")] = time; // You can set a Flash String to a JsonObject or JsonArray: // WARNING: the content of the Flash String will be duplicated in the // JsonBuffer. obj["sensor"] = F("gps"); // It works with serialized() too: obj["sensor"] = serialized(F("\"gps\"")); obj["sensor"] = serialized(F("\xA3gps"), 3); // You can compare the content of a JsonVariant to a Flash String if (obj["sensor"] == F("gps")) { // ... } #else #warning PROGMEM is not supported on this platform #endif } void loop() { // not used in this example } // Visit https://arduinojson.org/v6/example/progmem/ for more.