Releases: bblanchon/ArduinoJson
Releases · bblanchon/ArduinoJson
ArduinoJson 7.0.0
Changes
- Remove
BasicJsonDocument
- Remove
StaticJsonDocument
- Add abstract
Allocator
class - Merge
DynamicJsonDocument
withJsonDocument
- Remove
JSON_ARRAY_SIZE()
,JSON_OBJECT_SIZE()
, andJSON_STRING_SIZE()
- Remove
ARDUINOJSON_ENABLE_STRING_DEDUPLICATION
(string deduplication cannot be disabled anymore) - Remove
JsonDocument::capacity()
- Store the strings in the heap
- Reference-count shared strings
- Always store
serialized("string")
by copy (#1915) - Remove the zero-copy mode of
deserializeJson()
anddeserializeMsgPack()
- Fix double lookup in
to<JsonVariant>()
- Fix double call to
size()
inserializeMsgPack()
- Include
ARDUINOJSON_SLOT_OFFSET_SIZE
in the namespace name - Remove
JsonVariant::shallowCopy()
JsonDocument
's capacity grows as needed, no need to pass it to the constructor anymoreJsonDocument
's allocator is not monotonic anymore, removed values get recycled- Show a link to the documentation when user passes an unsupported input type
- Remove
JsonDocument::memoryUsage()
- Remove
JsonDocument::garbageCollect()
- Add
deserializeJson(JsonVariant, ...)
anddeserializeMsgPack(JsonVariant, ...)
(#1226) - Call
shrinkToFit()
indeserializeJson()
anddeserializeMsgPack()
serializeJson()
andserializeMsgPack()
replace the content ofstd::string
andString
instead of appending to it- Replace
add()
withadd<T>()
(add(T)
is still supported) - Remove
createNestedArray()
andcreateNestedObject()
(useto<JsonArray>()
andto<JsonObject>()
instead)
ArduinoJson 6.21.4
ArduinoJson 6.21.3
Changes
- Fix compatibility with the Blynk libary (issue #1914)
- Fix double lookup in
to<JsonVariant>()
- Fix double call to
size()
inserializeMsgPack()
- Include
ARDUINOJSON_SLOT_OFFSET_SIZE
in the namespace name - Show a link to the documentation when user passes an unsupported input type
ArduinoJson 6.21.2
ArduinoJson 6.21.1
Changes
- Double speed of
DynamicJsonDocument::garbageCollect()
- Fix compatibility with GCC 5.2 (issue #1897)
ArduinoJson 6.21.0
Changes
- Drop support for C++98/C++03. Minimum required is C++11.
- Remove
ARDUINOJSON_NAMESPACE
; useArduinoJson
instead. - Make string support generic (issue #1807)
ArduinoJson 6.20.1
Changes
- Remove explicit exclusion of
as<char*>()
andas<char>()
(issue #1860)
If you try to call them, you'll now get the same error message as any unsupported type.
You could also add a custom converter forchar*
andchar
.
ArduinoJson 6.20.0
Changes
- Add
JsonVariant::shallowCopy()
(issue #1343) - Fix
9.22337e+18 is outside the range of representable values of type 'long'
- Fix comparison operators for
JsonArray
,JsonArrayConst
,JsonObject
, andJsonObjectConst
- Fix lax parsing of
true
,false
, andnull
(issue #1781) - Remove undocumented
accept()
functions - Rename
addElement()
toadd()
- Remove
getElement()
,getOrAddElement()
,getMember()
, andgetOrAddMember()
- Remove undocumented
JsonDocument::data()
andJsonDocument::memoryPool()
- Remove undocumented
JsonArrayIterator::internal()
andJsonObjectIterator::internal()
- Rename things in
ARDUINOJSON_NAMESPACE
to match the public names - Add documentation to most public symbols
- Remove support for naked
char
(was deprecated since 6.18.0)
BREAKING CHANGES
This release hides
JsonVariant
's functions that were only intended for internal use.
If you were using them in your programs, you must replace withoperator[]
andto<JsonVariant>()
, like so:// before JsonVariant a = variant.getElement(idx); JsonVariant b = variant.getOrAddElement(idx); JsonVariant c = variant.getMember(key); JsonVariant d = variant.getOrAddMember(key); // after JsonVariant a = variant[idx]; JsonVariant b = idx < variant.size() ? variant[idx] : variant[idx].to<JsonVariant>(); JsonVariant c = variant[key]; JsonVariant d = variant.containsKey(key) ? variant[key] : variant[key].to<JsonVariant>();
ArduinoJson 6.19.4
Changes
- Add
ElementProxy::memoryUsage()
- Add
MemberProxy::memoryUsage()
(issue #1730) - Add implicit conversion from
JsonDocument
toJsonVariant
- Fix comparison operators with
const JsonDocument&