Releases: bblanchon/ArduinoJson
Releases · bblanchon/ArduinoJson
ArduinoJson 7.3.1
ArduinoJson 7.3.0
Changes
- Fix support for NUL characters in
deserializeJson()
- Make
ElementProxy
andMemberProxy
non-copyable - Change string copy policy: only string literal are stored by pointer
JsonString
is now stored by copy, unless specified otherwise- Replace undocumented
JsonString::Ownership
withbool
- Rename undocumented
JsonString::isLinked()
toisStatic()
- Move public facing SFINAEs to template declarations
BREAKING CHANGES
In previous versions,
MemberProxy
(the class returned byoperator[]
) could lead to dangling pointers when used with a temporary string.
To prevent this issue,MemberProxy
andElementProxy
are now non-copyable.Your code is likely to be affected if you use
auto
to store the result ofoperator[]
. For example, the following line won't compile anymore:auto value = doc["key"];To fix the issue, you must append either
.as<T>()
or.to<T>()
, depending on the situation.For example, if you are extracting values from a JSON document, you should update like this:
- auto config = doc["config"]; + auto config = doc["config"].as<JsonObject>(); const char* name = config["name"];However, if you are building a JSON document, you should update like this:
- auto config = doc["config"]; + auto config = doc["config"].to<JsonObject>(); config["name"] = "ArduinoJson";
ArduinoJson 7.2.1
Changes
- Forbid
deserializeJson(JsonArray|JsonObject, ...)
(issue #2135) - Fix VLA support in
JsonDocument::set()
- Fix
operator[](variant)
ignoring NUL characters
ArduinoJson 7.2.0
Changes
- Store object members with two slots: one for the key and one for the value
- Store 64-bit numbers (
double
andlong long
) in an additional slot - Reduce the slot size (see table below)
- Improve message when user forgets third arg of
serializeJson()
et al. - Set
ARDUINOJSON_USE_DOUBLE
to0
by default on 8-bit architectures - Deprecate
containsKey()
in favor ofdoc["key"].is<T>()
- Add support for escape sequence
\'
(issue #2124)
ArduinoJson 7.1.0
Changes
- Add
ARDUINOJSON_STRING_LENGTH_SIZE
to the namespace name - Add support for MsgPack binary (PR #2078 by @Sanae6)
- Add support for MsgPack extension
- Make string support even more generic (PR #2084 by @d-a-v)
- Optimize
deserializeMsgPack()
- Allow using a
JsonVariant
as a key or index (issue #2080)
Note: works only for reading, not for writing - Support
ElementProxy
andMemberProxy
inJsonDocument
's constructor - Don't add partial objects when allocation fails (issue #2081)
- Read MsgPack's 64-bit integers even if
ARDUINOJSON_USE_LONG_LONG
is0
(they are set tonull
if they don't fit in along
)
ArduinoJson 7.0.4
Changes
- Make
JSON_STRING_SIZE(N)
returnN+1
to fix third-party code (issue #2054)
ArduinoJson 7.0.3
ArduinoJson 7.0.2
Changes
- Fix assertion
poolIndex < count_
afterJsonDocument::clear()
(issue #2034)