All Versions
Latest Version
Avg Release Cycle
36 days
Latest Release
11 days ago

Changelog History
Page 4

  • v6.7.0-beta Changes

    December 07, 2018
    • โœ‚ Removed the automatic expansion of DynamicJsonDocument, it now has a fixed capacity.
    • โช Restored the monotonic allocator because the code was getting too big
    • โฌ‡๏ธ Reduced the memory usage
    • โฌ‡๏ธ Reduced the code size
    • ๐Ÿ“‡ Renamed JsonKey to JsonString
    • โœ‚ Removed spurious files in the Particle library
  • v6.6.0-beta Changes

    November 13, 2018
    • โœ‚ Removed JsonArray::is<T>(i) and JsonArray::set(i,v)
    • โœ‚ Removed JsonObject::is<T>(k) and JsonObject::set(k,v)
    • Replaced T JsonArray::get<T>(i) with JsonVariant JsonArray::get(i)
    • Replaced T JsonObject::get<T>(k) with JsonVariant JsonObject::get(k)
    • Added JSON_STRING_SIZE()
    • ๐Ÿš€ Replacing or removing a value now releases the memory
    • โž• Added DeserializationError::code() to be used in switch statements (issue #846)
  • v6.5.0-beta Changes

    October 13, 2018
    • โž• Added implicit conversion from JsonArray and JsonObject to JsonVariant
    • ๐Ÿ‘ Allow mixed configuration in compilation units (issue #809)
    • ๐Ÿ›  Fixed object keys not being duplicated
    • JsonPair::key() now returns a JsonKey
    • 0๏ธโƒฃ Increased the default capacity of DynamicJsonDocument
    • ๐Ÿ›  Fixed JsonVariant::is<String>() (closes #763)
    • โž• Added JsonArrayConst, JsonObjectConst, and JsonVariantConst
    • โž• Added copy-constructor and copy-assignment-operator for JsonDocument (issue #827)
  • v6.4.0-beta Changes

    September 11, 2018
    • Copy JsonArray and JsonObject, instead of storing pointers (issue #780)
    • โž• Added JsonVariant::to<JsonArray>() and JsonVariant::to<JsonObject>()
  • v6.3.0-beta Changes

    August 31, 2018
    • Implemented reference semantics for JsonVariant
    • Replaced JsonPair's key and value with key() and value()
    • ๐Ÿ›  Fixed serializeJson(obj[key], dst) (issue #794)



    JsonVariant now has a semantic similar to JsonObject and JsonArray. It's a reference to a value stored in the JsonDocument. As a consequence, a JsonVariant cannot be used as a standalone variable anymore.

    Old code:

    JsonVariant myValue = 42;

    New code:

    DynamicJsonDocument doc;
    JsonVariant myValue =<JsonVariant>();


    Old code:

    for(JsonPair p : myObject) {
    ๐Ÿ–จ >   Serial.println(p.key);
    ๐Ÿ–จ >   Serial.println(<int>());

    New code:

    for(JsonPair p : myObject) {
    ๐Ÿ–จ >   Serial.println(p.key());
    ๐Ÿ–จ >   Serial.println(p.value().as<int>());

    CAUTION: the key is now read only!

  • v6.2.3-beta Changes

    July 19, 2018
    • ๐Ÿ›  Fixed exception when using Flash strings as object keys (issue #784)
  • v6.2.2-beta Changes

    July 18, 2018
    • ๐Ÿ›  Fixed invalid application of 'sizeof' to incomplete type '__FlashStringHelper' (issue #783)
    • ๐Ÿ›  Fixed char[] not duplicated when passed to JsonVariant::operator[]
  • v6.2.1-beta Changes

    July 17, 2018
    • ๐Ÿ›  Fixed JsonObject not inserting keys of type String (issue #782)
  • v6.2.0-beta Changes

    July 12, 2018
    • Disabled lazy number deserialization (issue #772)
    • ๐Ÿ›  Fixed JsonVariant::is<int>() that returned true for empty strings
    • ๐Ÿ‘Œ Improved float serialization when -fsingle-precision-constant is used
    • ๐Ÿ“‡ Renamed function RawJson() to serialized()
    • ๐Ÿ‘ serializeMsgPack() now supports values marked with serialized()


    Non quoted strings

    Non quoted strings are now forbidden in values, but they are still allowed in keys. For example, {key:"value"} is accepted, but {key:value} is not.

    Preformatted values

    Old code:

    object["values"] = RawJson("[1,2,3,4]");

    New code:

    object["values"] = serialized("[1,2,3,4]");
  • v6.1.0-beta Changes

    July 02, 2018
    • Return JsonArray and JsonObject by value instead of reference (issue #309)
    • Replaced success() with isNull()


    Old code:

    JsonObject& obj =<JsonObject>();
    JsonArray& arr = obj.createNestedArray("key");
    if (!arr.success()) {
    ๐Ÿ–จ >   Serial.println("Not enough memory");

    New code:

    JsonObject obj =<JsonObject>();
    JsonArray arr = obj.createNestedArray("key");
    if (arr.isNull()) {
    ๐Ÿ–จ >   Serial.println("Not enough memory");