Releases: bblanchon/ArduinoJson
Releases · bblanchon/ArduinoJson
ArduinoJson 7.4.2
ArduinoJson 7.4.1
ArduinoJson 7.4.0
Changes
- Optimize storage of tiny strings (up to 3 characters)
- Fix support for
const char[](issue #2166)
ArduinoJson 7.3.1
ArduinoJson 7.3.0
Changes
- Fix support for NUL characters in
deserializeJson() - Make
ElementProxyandMemberProxynon-copyable - Change string copy policy: only string literal are stored by pointer
JsonStringis now stored by copy, unless specified otherwise- Replace undocumented
JsonString::Ownershipwithbool - 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,MemberProxyandElementProxyare now non-copyable.Your code is likely to be affected if you use
autoto 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 (
doubleandlong 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_DOUBLEto0by 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_SIZEto 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
JsonVariantas a key or index (issue #2080)
Note: works only for reading, not for writing - Support
ElementProxyandMemberProxyinJsonDocument's constructor - Don't add partial objects when allocation fails (issue #2081)
- Read MsgPack's 64-bit integers even if
ARDUINOJSON_USE_LONG_LONGis0
(they are set tonullif they don't fit in along)
ArduinoJson 7.0.4
Changes
- Make
JSON_STRING_SIZE(N)returnN+1to fix third-party code (issue #2054)