Releases: bblanchon/ArduinoJson
ArduinoJson 6.14.1
Changes since 6.14.0
- Fixed regression in UTF16 decoding (issue #1173)
- Fixed
containsKey()
onJsonVariantConst
- Added
getElement()
andgetMember()
toJsonVariantConst
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.14.1.h
put it in your project folder - Download
ArduinoJson-v6.14.1.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.14.1.h
and ArduinoJson-v6.14.1.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.14.0
Looking for a human-readable version?
📰 Read the article on arduinojson.org
Changes since 6.13.0
- Added
BasicJsonDocument::shrinkToFit()
- Added support of
uint8_t
forserializeJson()
,serializeJsonPretty()
, andserializeMsgPack()
(issue #1142) - Added
ARDUINOJSON_ENABLE_COMMENTS
to enable support for comments (defaults to 0) - Auto enable support for
std::string
andstd::stream
on modern compilers (issue #1156)
(No need to defineARDUINOJSON_ENABLE_STD_STRING
andARDUINOJSON_ENABLE_STD_STREAM
anymore) - Improved decoding of UTF-16 surrogate pairs (PR #1157 by @kaysievers)
(ArduinoJson now produces standard UTF-8 instead of CESU-8) - Added
measureJson
,measureJsonPretty
, andmeasureMsgPack
tokeywords.txt
(This file is used for syntax highlighting in the Arduino IDE) - Fixed
variant.is<nullptr_t>()
- Fixed value returned by
serializeJson()
,serializeJsonPretty()
, andserializeMsgPack()
when writing to aString
- Improved speed of
serializeJson()
,serializeJsonPretty()
, andserializeMsgPack()
when writing to aString
BREAKING CHANGES
⚠️ Support for comments in input is now optional and disabled by default.
If you need support for comments, you must defined
ARDUINOJSON_ENABLE_COMMENTS
to1
; otherwise, you'll receiveInvalidInput
errors.#define ARDUINOJSON_ENABLE_COMMENTS 1 #include <ArduinoJson.h>
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.14.0.h
put it in your project folder - Download
ArduinoJson-v6.14.0.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.14.0.h
and ArduinoJson-v6.14.0.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.13.0
Looking for a human-readable version?
📰 Read the article on arduinojson.org
Changes since 6.12.0
- Added support for custom writer/reader classes (issue #1088)
- Added conversion from
JsonArray
andJsonObject
tobool
, to be consistent withJsonVariant
- Fixed
deserializeJson()
when input contains duplicate keys (issue #1095) - Improved
deserializeMsgPack()
speed by reading several bytes at once - Added detection of Atmel AVR8/GNU C Compiler (issue #1112)
- Fixed deserializer that stopped reading at the first
0xFF
(PR #1118 by @mikee47) - Fixed dangling reference in copies of
MemberProxy
andElementProxy
(issue #1120)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.13.0.h
put it in your project folder - Download
ArduinoJson-v6.13.0.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.13.0.h
and ArduinoJson-v6.13.0.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.12.0
Looking for a human-readable version?
📰 Read the article on arduinojson.org
Changes since 6.11.5
- Use absolute instead of relative includes (issue #1072)
- Changed
JsonVariant::as<bool>()
to returntrue
for any non-null value (issue #1005) - Moved ancillary files to
extras/
(issue #1011)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.12.0.h
put it in your project folder - Download
ArduinoJson-v6.12.0.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.12.0.h
and ArduinoJson-v6.12.0.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.11.5
Changes since 6.11.4
- Added fallback implementations of
strlen_P()
,strncmp_P()
,strcmp_P()
, andmemcpy_P()
(issue #1073)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.11.5.h
put it in your project folder - Download
ArduinoJson-v6.11.5.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.11.5.h
and ArduinoJson-v6.11.5.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.11.4
Changes since 6.11.3
- Added
measureJson()
to theArduinoJson
namespace (PR #1069 by @nomis) - Added support for
basic_string<char, traits, allocator>
(issue #1045) - Fixed example
JsonConfigFile.ino
for ESP8266 - Include
Arduino.h
ifARDUINO
is defined (PR #1071 by @nomis)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.11.4.h
put it in your project folder - Download
ArduinoJson-v6.11.4.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.11.4.h
and ArduinoJson-v6.11.4.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.11.3
Changes since 6.11.2
- Added operators
==
and!=
forJsonDocument
,ElementProxy
, andMemberProxy
- Fixed comparison of
JsonVariant
when one contains a linked string and the other contains an owned string (issue #1051)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.11.3.h
put it in your project folder - Download
ArduinoJson-v6.11.3.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.11.3.h
and ArduinoJson-v6.11.3.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.11.2
Changes since 6.11.1
- Fixed assignment of
JsonDocument
toJsonVariant
(issue #1023) - Fix invalid conversion error on Particle Argon (issue #1035)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.11.2.h
put it in your project folder - Download
ArduinoJson-v6.11.2.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.11.2.h
and ArduinoJson-v6.11.2.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.11.1
Changes since 6.11.0
- Fixed
serialized()
not working with Flash strings (issue #1030)
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.11.1.h
put it in your project folder - Download
ArduinoJson-v6.11.1.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.11.1.h
and ArduinoJson-v6.11.1.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.
Try online
ArduinoJson 6.11.0
Looking for a human-readable version?
📰 Read the article on arduinojson.org
Changes since 6.10.1
- Fixed
deserializeJson()
silently accepting aStream*
(issue #978) - Fixed invalid result from
operator|
(issue #981) - Made
deserializeJson()
more picky about trailing characters (issue #980) - Added
ARDUINOJSON_ENABLE_NAN
(default=0) to enable NaN in JSON (issue #973) - Added
ARDUINOJSON_ENABLE_INFINITY
(default=0) to enable Infinity in JSON - Removed implicit conversion in comparison operators (issue #998)
- Added lexicographical comparison for
JsonVariant
- Added support for
nullptr
(issue #998)
BREAKING CHANGES
NaN and Infinity
The JSON specification allows neither NaN not Infinity, but previous
versions of ArduinoJson supported it. Now, ArduinoJson behaves like most
other libraries: a NaN or and Infinity in theJsonDocument
, becomes
anull
in the output JSON. Also,deserializeJson()
returns
InvalidInput
if the JSON document contains NaN or Infinity.This version still supports NaN and Infinity in JSON documents, but
it's disabled by default to be compatible with other JSON parsers.
If you need the old behavior back, defineARDUINOJSON_ENABLE_NAN
and
ARDUINOJSON_ENABLE_INFINITY
to1
:#define ARDUINOJSON_ENABLE_NAN 1 #define ARDUINOJSON_ENABLE_INFINITY 1 #include <ArduinoJson.h>The "or" operator
This version slightly changes the behavior of the | operator when the
variant contains a float and the user requests an integer.Older versions returned the floating point value truncated.
Now, it returns the default value.// suppose variant contains 1.2 int value = variant | 3; // old behavior: value == 1 // new behavior value == 3If you need the old behavior, you must add
if (variant.is<float>())
.
How to install
There are several ways to install ArduinoJson, from simpler to more complex:
- Use the Arduino Library Manager
- Download
ArduinoJson-v6.11.0.h
put it in your project folder - Download
ArduinoJson-v6.11.0.zip
and extract it in youlibraries
folder
Note: ArduinoJson-v6.11.0.h
and ArduinoJson-v6.11.0.hpp
are almost identical; the difference is that the .hpp
keeps everything in the ArduinoJson
namespace.