diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index c7a074b2..57ee8517 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -14,7 +14,7 @@ Before opening a bug report, please use the ArduinoJson Troubleshooter as it may A clear and concise description of what the bug is. **Troubleshooter report** -Here is the report generated by the [ArduinoJson Troubleshooter](https://arduinojson.org/v6/troubleshooter/): +Here is the report generated by the [ArduinoJson Troubleshooter](https://arduinojson.org/v7/troubleshooter/): [Paste the report here] **Environment** diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 4cfe33ae..5f69e8e9 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: true contact_links: - name: 👨‍🏫 ArduinoJson Assistant - url: https://arduinojson.org/v6/assistant/ + url: https://arduinojson.org/v7/assistant/ about: An online tool that computes memory requirements and generates scaffolding code for your project. - name: 👨‍⚕️ ArduinoJson Troubleshooter - url: https://arduinojson.org/v6/troubleshooter/ + url: https://arduinojson.org/v7/troubleshooter/ about: An online tool that helps you diagnose the most common issues with ArduinoJson. diff --git a/.github/ISSUE_TEMPLATE/help.md b/.github/ISSUE_TEMPLATE/help.md index 8ed18639..4440b866 100644 --- a/.github/ISSUE_TEMPLATE/help.md +++ b/.github/ISSUE_TEMPLATE/help.md @@ -15,7 +15,7 @@ A clear and concise description of what you're trying to do. You don't need to explain every aspect of your project: focus on the problem you're having. **Troubleshooter report** -Here is the report generated by the [ArduinoJson Troubleshooter](https://arduinojson.org/v6/troubleshooter/): +Here is the report generated by the [ArduinoJson Troubleshooter](https://arduinojson.org/v7/troubleshooter/): [Paste the report here] **Environment** diff --git a/README.md b/README.md index 24e2ac90..a490af33 100644 --- a/README.md +++ b/README.md @@ -15,28 +15,28 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). ## Features -* [JSON deserialization](https://arduinojson.org/v6/api/json/deserializejson/) - * [Optionally decodes UTF-16 escape sequences to UTF-8](https://arduinojson.org/v6/api/config/decode_unicode/) - * [Optionally supports comments in the input](https://arduinojson.org/v6/api/config/enable_comments/) - * [Optionally filters the input to keep only desired values](https://arduinojson.org/v6/api/json/deserializejson/#filtering) +* [JSON deserialization](https://arduinojson.org/v7/api/json/deserializejson/) + * [Optionally decodes UTF-16 escape sequences to UTF-8](https://arduinojson.org/v7/api/config/decode_unicode/) + * [Optionally supports comments in the input](https://arduinojson.org/v7/api/config/enable_comments/) + * [Optionally filters the input to keep only desired values](https://arduinojson.org/v7/api/json/deserializejson/#filtering) * Supports single quotes as a string delimiter * Compatible with [NDJSON](http://ndjson.org/) and [JSON Lines](https://jsonlines.org/) -* [JSON serialization](https://arduinojson.org/v6/api/json/serializejson/) - * [Can write to a buffer or a stream](https://arduinojson.org/v6/api/json/serializejson/) - * [Optionally indents the document (prettified JSON)](https://arduinojson.org/v6/api/json/serializejsonpretty/) -* [MessagePack serialization](https://arduinojson.org/v6/api/msgpack/serializemsgpack/) -* [MessagePack deserialization](https://arduinojson.org/v6/api/msgpack/deserializemsgpack/) +* [JSON serialization](https://arduinojson.org/v7/api/json/serializejson/) + * [Can write to a buffer or a stream](https://arduinojson.org/v7/api/json/serializejson/) + * [Optionally indents the document (prettified JSON)](https://arduinojson.org/v7/api/json/serializejsonpretty/) +* [MessagePack serialization](https://arduinojson.org/v7/api/msgpack/serializemsgpack/) +* [MessagePack deserialization](https://arduinojson.org/v7/api/msgpack/deserializemsgpack/) * Efficient * [Twice smaller than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) * [Almost 10% faster than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) * [Consumes roughly 10% less RAM than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) * [Deduplicates strings](https://arduinojson.org/news/2020/08/01/version-6-16-0/) * Versatile - * Supports [custom allocators (to use external RAM chip, for example)](https://arduinojson.org/v6/how-to/use-external-ram-on-esp32/) - * Supports [`String`](https://arduinojson.org/v6/api/config/enable_arduino_string/), [`std::string`](https://arduinojson.org/v6/api/config/enable_std_string/), and [`std::string_view`](https://arduinojson.org/v6/api/config/enable_string_view/) - * Supports [`Stream`](https://arduinojson.org/v6/api/config/enable_arduino_stream/) and [`std::istream`/`std::ostream`](https://arduinojson.org/v6/api/config/enable_std_stream/) - * Supports [Flash strings](https://arduinojson.org/v6/api/config/enable_progmem/) - * Supports [custom readers](https://arduinojson.org/v6/api/json/deserializejson/#custom-reader) and [custom writers](https://arduinojson.org/v6/api/json/serializejson/#custom-writer) + * Supports [custom allocators (to use external RAM chip, for example)](https://arduinojson.org/v7/how-to/use-external-ram-on-esp32/) + * Supports [`String`](https://arduinojson.org/v7/api/config/enable_arduino_string/), [`std::string`](https://arduinojson.org/v7/api/config/enable_std_string/), and [`std::string_view`](https://arduinojson.org/v7/api/config/enable_string_view/) + * Supports [`Stream`](https://arduinojson.org/v7/api/config/enable_arduino_stream/) and [`std::istream`/`std::ostream`](https://arduinojson.org/v7/api/config/enable_std_stream/) + * Supports [Flash strings](https://arduinojson.org/v7/api/config/enable_progmem/) + * Supports [custom readers](https://arduinojson.org/v7/api/json/deserializejson/#custom-reader) and [custom writers](https://arduinojson.org/v7/api/json/serializejson/#custom-writer) * Supports [custom converters](https://arduinojson.org/news/2021/05/04/version-6-18-0/) * Portable * Usable on any C++ project (not limited to Arduino) @@ -66,15 +66,15 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). * [Visual Micro](http://www.visualmicro.com/) * [Visual Studio](https://www.visualstudio.com/) * [Even works with online compilers like wandbox.org](https://wandbox.org/permlink/RlZSKy17DjJ6HcdN) - * [CMake friendly](https://arduinojson.org/v6/how-to/use-arduinojson-with-cmake/) + * [CMake friendly](https://arduinojson.org/v7/how-to/use-arduinojson-with-cmake/) * Well designed - * [Elegant API](http://arduinojson.org/v6/example/) + * [Elegant API](http://arduinojson.org/v7/example/) * [Thread-safe](https://en.wikipedia.org/wiki/Thread_safety) * Self-contained (no external dependency) * `const` friendly - * [`for` friendly](https://arduinojson.org/v6/api/jsonobject/begin_end/) + * [`for` friendly](https://arduinojson.org/v7/api/jsonobject/begin_end/) * [TMP friendly](https://en.wikipedia.org/wiki/Template_metaprogramming) - * Handles [integer overflows](https://arduinojson.org/v6/api/jsonvariant/as/#integer-overflows) + * Handles [integer overflows](https://arduinojson.org/v7/api/jsonvariant/as/#integer-overflows) * Well tested * [Unit test coverage close to 100%](https://coveralls.io/github/bblanchon/ArduinoJson?branch=7.x) * Continuously tested on @@ -84,11 +84,11 @@ ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). * [Continuously fuzzed with Google OSS Fuzz](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) * Passes all default checks of [clang-tidy](https://releases.llvm.org/10.0.0/tools/clang/tools/extra/docs/clang-tidy/) * Well documented - * [Tutorials](https://arduinojson.org/v6/doc/deserialization/) - * [Examples](https://arduinojson.org/v6/example/) - * [How-tos](https://arduinojson.org/v6/example/) - * [FAQ](https://arduinojson.org/v6/faq/) - * [Troubleshooter](https://arduinojson.org/v6/troubleshooter/) + * [Tutorials](https://arduinojson.org/v7/doc/deserialization/) + * [Examples](https://arduinojson.org/v7/example/) + * [How-tos](https://arduinojson.org/v7/example/) + * [FAQ](https://arduinojson.org/v7/faq/) + * [Troubleshooter](https://arduinojson.org/v7/troubleshooter/) * [Book](https://arduinojson.org/book/) * [Changelog](CHANGELOG.md) * Vibrant user community @@ -114,7 +114,7 @@ double latitude = doc["data"][0]; double longitude = doc["data"][1]; ``` -See the [tutorial on arduinojson.org](https://arduinojson.org/v6/doc/deserialization/) +See the [tutorial on arduinojson.org](https://arduinojson.org/v7/doc/deserialization/) ### Serialization @@ -133,7 +133,7 @@ serializeJson(doc, Serial); // {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} ``` -See the [tutorial on arduinojson.org](https://arduinojson.org/v6/doc/serialization/) +See the [tutorial on arduinojson.org](https://arduinojson.org/v7/doc/serialization/) ## Sponsors diff --git a/examples/JsonConfigFile/JsonConfigFile.ino b/examples/JsonConfigFile/JsonConfigFile.ino index c3c3bdfc..399608a7 100644 --- a/examples/JsonConfigFile/JsonConfigFile.ino +++ b/examples/JsonConfigFile/JsonConfigFile.ino @@ -17,7 +17,7 @@ // * CLK <-> pin 13 // * CS <-> pin 4 // -// https://arduinojson.org/v6/example/config/ +// https://arduinojson.org/v7/example/config/ #include #include @@ -136,7 +136,7 @@ void loop() { // ------------------ // // File is an unbuffered stream, which is not optimal for ArduinoJson. -// See: https://arduinojson.org/v6/how-to/improve-speed/ +// See: https://arduinojson.org/v7/how-to/improve-speed/ // See also // -------- diff --git a/examples/JsonFilterExample/JsonFilterExample.ino b/examples/JsonFilterExample/JsonFilterExample.ino index 5abf9816..ece7e861 100644 --- a/examples/JsonFilterExample/JsonFilterExample.ino +++ b/examples/JsonFilterExample/JsonFilterExample.ino @@ -4,7 +4,7 @@ // // This example shows how to use DeserializationOption::Filter // -// https://arduinojson.org/v6/example/filter/ +// https://arduinojson.org/v7/example/filter/ #include diff --git a/examples/JsonGeneratorExample/JsonGeneratorExample.ino b/examples/JsonGeneratorExample/JsonGeneratorExample.ino index 05a26c22..ba7849e2 100644 --- a/examples/JsonGeneratorExample/JsonGeneratorExample.ino +++ b/examples/JsonGeneratorExample/JsonGeneratorExample.ino @@ -4,7 +4,7 @@ // // This example shows how to generate a JSON document with ArduinoJson. // -// https://arduinojson.org/v6/example/generator/ +// https://arduinojson.org/v7/example/generator/ #include @@ -21,12 +21,12 @@ void setup() { doc["sensor"] = "gps"; doc["time"] = 1351824120; - // Add an array. + // Add an array JsonArray data = doc["data"].to(); data.add(48.756080); data.add(2.302038); - // Generate the minified JSON and send it to the Serial port. + // Generate the minified JSON and send it to the Serial port serializeJson(doc, Serial); // The above line prints: // {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} @@ -34,7 +34,7 @@ void setup() { // Start a new line Serial.println(); - // Generate the prettified JSON and send it to the Serial port. + // Generate the prettified JSON and send it to the Serial port serializeJsonPretty(doc, Serial); // The above line prints: // { diff --git a/examples/JsonHttpClient/JsonHttpClient.ino b/examples/JsonHttpClient/JsonHttpClient.ino index 5cb1c2a5..bd701c5e 100644 --- a/examples/JsonHttpClient/JsonHttpClient.ino +++ b/examples/JsonHttpClient/JsonHttpClient.ino @@ -16,7 +16,7 @@ // ] // } // -// https://arduinojson.org/v6/example/http-client/ +// https://arduinojson.org/v7/example/http-client/ #include #include @@ -108,7 +108,7 @@ void loop() { // ------------------ // // EthernetClient is an unbuffered stream, which is not optimal for ArduinoJson. -// See: https://arduinojson.org/v6/how-to/improve-speed/ +// See: https://arduinojson.org/v7/how-to/improve-speed/ // See also // -------- diff --git a/examples/JsonParserExample/JsonParserExample.ino b/examples/JsonParserExample/JsonParserExample.ino index 7cbb72c5..2b60d19f 100644 --- a/examples/JsonParserExample/JsonParserExample.ino +++ b/examples/JsonParserExample/JsonParserExample.ino @@ -4,7 +4,7 @@ // // This example shows how to deserialize a JSON document with ArduinoJson. // -// https://arduinojson.org/v6/example/parser/ +// https://arduinojson.org/v7/example/parser/ #include @@ -24,14 +24,14 @@ void setup() { // Deserialize the JSON document DeserializationError error = deserializeJson(doc, json); - // Test if parsing succeeds. + // Test if parsing succeeds if (error) { Serial.print(F("deserializeJson() failed: ")); Serial.println(error.f_str()); return; } - // Fetch values. + // Fetch the values // // Most of the time, you can rely on the implicit casts. // In other case, you can do doc["time"].as(); @@ -40,7 +40,7 @@ void setup() { double latitude = doc["data"][0]; double longitude = doc["data"][1]; - // Print values. + // Print the values Serial.println(sensor); Serial.println(time); Serial.println(latitude, 6); diff --git a/examples/JsonServer/JsonServer.ino b/examples/JsonServer/JsonServer.ino index 0d81a3d9..8e1827b4 100644 --- a/examples/JsonServer/JsonServer.ino +++ b/examples/JsonServer/JsonServer.ino @@ -13,7 +13,7 @@ // "digital": [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0] // } // -// https://arduinojson.org/v6/example/http-server/ +// https://arduinojson.org/v7/example/http-server/ #include #include @@ -102,7 +102,7 @@ void loop() { // ------------------ // // EthernetClient is an unbuffered stream, which is not optimal for ArduinoJson. -// See: https://arduinojson.org/v6/how-to/improve-speed/ +// See: https://arduinojson.org/v7/how-to/improve-speed/ // See also // -------- diff --git a/examples/JsonUdpBeacon/JsonUdpBeacon.ino b/examples/JsonUdpBeacon/JsonUdpBeacon.ino index c5d5b432..482c021a 100644 --- a/examples/JsonUdpBeacon/JsonUdpBeacon.ino +++ b/examples/JsonUdpBeacon/JsonUdpBeacon.ino @@ -17,7 +17,7 @@ // $ ncat -ulp 8888 // See https://nmap.org/ncat/ // -// https://arduinojson.org/v6/example/udp-beacon/ +// https://arduinojson.org/v7/example/udp-beacon/ #include #include @@ -90,7 +90,7 @@ void loop() { // ------------------ // // EthernetUDP is an unbuffered stream, which is not optimal for ArduinoJson. -// See: https://arduinojson.org/v6/how-to/improve-speed/ +// See: https://arduinojson.org/v7/how-to/improve-speed/ // See also // -------- diff --git a/examples/MsgPackParser/MsgPackParser.ino b/examples/MsgPackParser/MsgPackParser.ino index 83527f45..eff6248f 100644 --- a/examples/MsgPackParser/MsgPackParser.ino +++ b/examples/MsgPackParser/MsgPackParser.ino @@ -5,7 +5,7 @@ // This example shows how to deserialize a MessagePack document with // ArduinoJson. // -// https://arduinojson.org/v6/example/msgpack-parser/ +// https://arduinojson.org/v7/example/msgpack-parser/ #include @@ -18,7 +18,7 @@ void setup() { // Allocate the JSON document JsonDocument doc; - // MessagePack input string. + // The MessagePack input string uint8_t input[] = {131, 166, 115, 101, 110, 115, 111, 114, 163, 103, 112, 115, 164, 116, 105, 109, 101, 206, 80, 147, 50, 248, 164, 100, 97, 116, 97, 146, 203, 64, 72, 96, 199, 58, 188, 148, @@ -30,16 +30,17 @@ void setup() { // "data": [48.75608, 2.302038] // } + // Parse the input DeserializationError error = deserializeMsgPack(doc, input); - // Test if parsing succeeded. + // Test if parsing succeeded if (error) { Serial.print("deserializeMsgPack() failed: "); Serial.println(error.f_str()); return; } - // Fetch values. + // Fetch the values // // Most of the time, you can rely on the implicit casts. // In other case, you can do doc["time"].as(); @@ -48,7 +49,7 @@ void setup() { double latitude = doc["data"][0]; double longitude = doc["data"][1]; - // Print values. + // Print the values Serial.println(sensor); Serial.println(time); Serial.println(latitude, 6); diff --git a/examples/ProgmemExample/ProgmemExample.ino b/examples/ProgmemExample/ProgmemExample.ino index 04880769..7733e6a9 100644 --- a/examples/ProgmemExample/ProgmemExample.ino +++ b/examples/ProgmemExample/ProgmemExample.ino @@ -9,7 +9,7 @@ // JsonDocument. Prefer plain old char*, as they are more efficient in term of // code size, speed, and memory usage. // -// https://arduinojson.org/v6/example/progmem/ +// https://arduinojson.org/v7/example/progmem/ #include diff --git a/examples/StringExample/StringExample.ino b/examples/StringExample/StringExample.ino index 3d754597..57d04f38 100644 --- a/examples/StringExample/StringExample.ino +++ b/examples/StringExample/StringExample.ino @@ -8,7 +8,7 @@ // JsonDocument. Prefer plain old char[], as they are more efficient in term of // code size, speed, and memory usage. // -// https://arduinojson.org/v6/example/string/ +// https://arduinojson.org/v7/example/string/ #include diff --git a/extras/scripts/get-release-page.sh b/extras/scripts/get-release-page.sh index 9bf943ef..9eb53e1f 100755 --- a/extras/scripts/get-release-page.sh +++ b/extras/scripts/get-release-page.sh @@ -8,7 +8,7 @@ ARDUINOJSON_H="$3" cat << END --- -branch: v6 +branch: v7 version: $VERSION date: '$(date +'%Y-%m-%d')' $(extras/scripts/wandbox/publish.sh "$ARDUINOJSON_H") diff --git a/src/ArduinoJson/Array/ElementProxy.hpp b/src/ArduinoJson/Array/ElementProxy.hpp index e9ca8096..4d83ecf4 100644 --- a/src/ArduinoJson/Array/ElementProxy.hpp +++ b/src/ArduinoJson/Array/ElementProxy.hpp @@ -9,7 +9,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE // A proxy class to get or set an element of an array. -// https://arduinojson.org/v6/api/jsonarray/subscript/ +// https://arduinojson.org/v7/api/jsonarray/subscript/ template class ElementProxy : public VariantRefBase>, public VariantOperators> { diff --git a/src/ArduinoJson/Array/JsonArray.hpp b/src/ArduinoJson/Array/JsonArray.hpp index b339d979..1046f111 100644 --- a/src/ArduinoJson/Array/JsonArray.hpp +++ b/src/ArduinoJson/Array/JsonArray.hpp @@ -12,7 +12,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE class JsonObject; // A reference to an array in a JsonDocument -// https://arduinojson.org/v6/api/jsonarray/ +// https://arduinojson.org/v7/api/jsonarray/ class JsonArray : public detail::VariantOperators { friend class detail::VariantAttorney; @@ -28,7 +28,7 @@ class JsonArray : public detail::VariantOperators { : data_(data), resources_(resources) {} // Returns a JsonVariant pointing to the array. - // https://arduinojson.org/v6/api/jsonvariant/ + // https://arduinojson.org/v7/api/jsonvariant/ operator JsonVariant() { void* data = data_; // prevent warning cast-align return JsonVariant(reinterpret_cast(data), @@ -36,14 +36,14 @@ class JsonArray : public detail::VariantOperators { } // Returns a read-only reference to the array. - // https://arduinojson.org/v6/api/jsonarrayconst/ + // https://arduinojson.org/v7/api/jsonarrayconst/ operator JsonArrayConst() const { return JsonArrayConst(data_, resources_); } // Appends a new (empty) element to the array. // Returns a reference to the new element. - // https://arduinojson.org/v6/api/jsonarray/add/ + // https://arduinojson.org/v7/api/jsonarray/add/ template typename detail::enable_if::value, T>::type add() const { @@ -52,7 +52,7 @@ class JsonArray : public detail::VariantOperators { // Appends a new (null) element to the array. // Returns a reference to the new element. - // https://arduinojson.org/v6/api/jsonarray/add/ + // https://arduinojson.org/v7/api/jsonarray/add/ template typename detail::enable_if::value, T>::type add() const { @@ -61,21 +61,21 @@ class JsonArray : public detail::VariantOperators { } // Appends a value to the array. - // https://arduinojson.org/v6/api/jsonarray/add/ + // https://arduinojson.org/v7/api/jsonarray/add/ template FORCE_INLINE bool add(const T& value) const { return add().set(value); } // Appends a value to the array. - // https://arduinojson.org/v6/api/jsonarray/add/ + // https://arduinojson.org/v7/api/jsonarray/add/ template FORCE_INLINE bool add(T* value) const { return add().set(value); } // Returns an iterator to the first element of the array. - // https://arduinojson.org/v6/api/jsonarray/begin/ + // https://arduinojson.org/v7/api/jsonarray/begin/ FORCE_INLINE iterator begin() const { if (!data_) return iterator(); @@ -83,13 +83,13 @@ class JsonArray : public detail::VariantOperators { } // Returns an iterator following the last element of the array. - // https://arduinojson.org/v6/api/jsonarray/end/ + // https://arduinojson.org/v7/api/jsonarray/end/ FORCE_INLINE iterator end() const { return iterator(); } // Copies an array. - // https://arduinojson.org/v6/api/jsonarray/set/ + // https://arduinojson.org/v7/api/jsonarray/set/ FORCE_INLINE bool set(JsonArrayConst src) const { if (!data_) return false; @@ -105,27 +105,27 @@ class JsonArray : public detail::VariantOperators { // Removes the element at the specified iterator. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsonarray/remove/ + // https://arduinojson.org/v7/api/jsonarray/remove/ FORCE_INLINE void remove(iterator it) const { detail::ArrayData::remove(data_, it.iterator_, resources_); } // Removes the element at the specified index. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsonarray/remove/ + // https://arduinojson.org/v7/api/jsonarray/remove/ FORCE_INLINE void remove(size_t index) const { detail::ArrayData::removeElement(data_, index, resources_); } // Removes all the elements of the array. // ⚠️ Doesn't release the memory associated with the removed elements. - // https://arduinojson.org/v6/api/jsonarray/clear/ + // https://arduinojson.org/v7/api/jsonarray/clear/ void clear() const { detail::ArrayData::clear(data_, resources_); } // Gets or sets the element at the specified index. - // https://arduinojson.org/v6/api/jsonarray/subscript/ + // https://arduinojson.org/v7/api/jsonarray/subscript/ FORCE_INLINE detail::ElementProxy operator[](size_t index) const { return {*this, index}; } @@ -135,25 +135,25 @@ class JsonArray : public detail::VariantOperators { } // Returns true if the reference is unbound. - // https://arduinojson.org/v6/api/jsonarray/isnull/ + // https://arduinojson.org/v7/api/jsonarray/isnull/ FORCE_INLINE bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. - // https://arduinojson.org/v6/api/jsonarray/isnull/ + // https://arduinojson.org/v7/api/jsonarray/isnull/ FORCE_INLINE operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the array. - // https://arduinojson.org/v6/api/jsonarray/nesting/ + // https://arduinojson.org/v7/api/jsonarray/nesting/ FORCE_INLINE size_t nesting() const { return detail::VariantData::nesting(collectionToVariant(data_), resources_); } // Returns the number of elements in the array. - // https://arduinojson.org/v6/api/jsonarray/size/ + // https://arduinojson.org/v7/api/jsonarray/size/ FORCE_INLINE size_t size() const { return data_ ? data_->size(resources_) : 0; } diff --git a/src/ArduinoJson/Array/JsonArrayConst.hpp b/src/ArduinoJson/Array/JsonArrayConst.hpp index fcd247a4..d8e26807 100644 --- a/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -13,7 +13,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE class JsonObject; // A read-only reference to an array in a JsonDocument -// https://arduinojson.org/v6/api/jsonarrayconst/ +// https://arduinojson.org/v7/api/jsonarrayconst/ class JsonArrayConst : public detail::VariantOperators { friend class JsonArray; friend class detail::VariantAttorney; @@ -22,7 +22,7 @@ class JsonArrayConst : public detail::VariantOperators { typedef JsonArrayConstIterator iterator; // Returns an iterator to the first element of the array. - // https://arduinojson.org/v6/api/jsonarrayconst/begin/ + // https://arduinojson.org/v7/api/jsonarrayconst/begin/ FORCE_INLINE iterator begin() const { if (!data_) return iterator(); @@ -30,7 +30,7 @@ class JsonArrayConst : public detail::VariantOperators { } // Returns an iterator to the element following the last element of the array. - // https://arduinojson.org/v6/api/jsonarrayconst/end/ + // https://arduinojson.org/v7/api/jsonarrayconst/end/ FORCE_INLINE iterator end() const { return iterator(); } @@ -44,7 +44,7 @@ class JsonArrayConst : public detail::VariantOperators { : data_(data), resources_(resources) {} // Returns the element at the specified index. - // https://arduinojson.org/v6/api/jsonarrayconst/subscript/ + // https://arduinojson.org/v7/api/jsonarrayconst/subscript/ FORCE_INLINE JsonVariantConst operator[](size_t index) const { return JsonVariantConst( detail::ArrayData::getElement(data_, index, resources_), resources_); @@ -55,25 +55,25 @@ class JsonArrayConst : public detail::VariantOperators { } // Returns true if the reference is unbound. - // https://arduinojson.org/v6/api/jsonarrayconst/isnull/ + // https://arduinojson.org/v7/api/jsonarrayconst/isnull/ FORCE_INLINE bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. - // https://arduinojson.org/v6/api/jsonarrayconst/isnull/ + // https://arduinojson.org/v7/api/jsonarrayconst/isnull/ FORCE_INLINE operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the array. - // https://arduinojson.org/v6/api/jsonarrayconst/nesting/ + // https://arduinojson.org/v7/api/jsonarrayconst/nesting/ FORCE_INLINE size_t nesting() const { return detail::VariantData::nesting(collectionToVariant(data_), resources_); } // Returns the number of elements in the array. - // https://arduinojson.org/v6/api/jsonarrayconst/size/ + // https://arduinojson.org/v7/api/jsonarrayconst/size/ FORCE_INLINE size_t size() const { return data_ ? data_->size(resources_) : 0; } diff --git a/src/ArduinoJson/Array/Utilities.hpp b/src/ArduinoJson/Array/Utilities.hpp index 5d145c3d..49710fa9 100644 --- a/src/ArduinoJson/Array/Utilities.hpp +++ b/src/ArduinoJson/Array/Utilities.hpp @@ -18,7 +18,7 @@ copyArray(const T& src, JsonVariant dst) { } // Copies values from an array to a JsonArray or a JsonVariant. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline typename detail::enable_if< !detail::is_base_of::value, bool>::type @@ -27,7 +27,7 @@ copyArray(T (&src)[N], const TDestination& dst) { } // Copies values from an array to a JsonArray or a JsonVariant. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline typename detail::enable_if< !detail::is_base_of::value, bool>::type @@ -47,14 +47,14 @@ inline bool copyArray(const char* src, size_t, const TDestination& dst) { } // Copies values from an array to a JsonDocument. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline bool copyArray(const T& src, JsonDocument& dst) { return copyArray(src, dst.to()); } // Copies an array to a JsonDocument. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline bool copyArray(const T* src, size_t len, JsonDocument& dst) { return copyArray(src, len, dst.to()); @@ -70,14 +70,14 @@ copyArray(JsonVariantConst src, T& dst) { } // Copies values from a JsonArray or JsonVariant to an array. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline size_t copyArray(JsonArrayConst src, T (&dst)[N]) { return copyArray(src, dst, N); } // Copies values from a JsonArray or JsonVariant to an array. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline size_t copyArray(JsonArrayConst src, T* dst, size_t len) { size_t i = 0; @@ -101,7 +101,7 @@ inline size_t copyArray(JsonVariantConst src, char (&dst)[N]) { } // Copies values from a JsonDocument to an array. -// https://arduinojson.org/v6/api/misc/copyarray/ +// https://arduinojson.org/v7/api/misc/copyarray/ template inline typename detail::enable_if< detail::is_array::value && diff --git a/src/ArduinoJson/Deserialization/Reader.hpp b/src/ArduinoJson/Deserialization/Reader.hpp index 44437686..75ab8d0e 100644 --- a/src/ArduinoJson/Deserialization/Reader.hpp +++ b/src/ArduinoJson/Deserialization/Reader.hpp @@ -19,7 +19,7 @@ struct Reader { int read() { // clang-format off - return source_->read(); // Error here? See https://arduinojson.org/v6/invalid-input/ + return source_->read(); // Error here? See https://arduinojson.org/v7/invalid-input/ // clang-format on } diff --git a/src/ArduinoJson/Document/JsonDocument.hpp b/src/ArduinoJson/Document/JsonDocument.hpp index 215f5ff1..3a297045 100644 --- a/src/ArduinoJson/Document/JsonDocument.hpp +++ b/src/ArduinoJson/Document/JsonDocument.hpp @@ -16,7 +16,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A JSON document. -// https://arduinojson.org/v6/api/jsondocument/ +// https://arduinojson.org/v7/api/jsondocument/ class JsonDocument : public detail::VariantOperators { friend class detail::VariantAttorney; @@ -65,78 +65,78 @@ class JsonDocument : public detail::VariantOperators { } // Reduces the capacity of the memory pool to match the current usage. - // https://arduinojson.org/v6/api/JsonDocument/shrinktofit/ + // https://arduinojson.org/v7/api/JsonDocument/shrinktofit/ void shrinkToFit() { resources_.shrinkToFit(); } // Casts the root to the specified type. - // https://arduinojson.org/v6/api/jsondocument/as/ + // https://arduinojson.org/v7/api/jsondocument/as/ template T as() { return getVariant().template as(); } // Casts the root to the specified type. - // https://arduinojson.org/v6/api/jsondocument/as/ + // https://arduinojson.org/v7/api/jsondocument/as/ template T as() const { return getVariant().template as(); } // Empties the document and resets the memory pool - // https://arduinojson.org/v6/api/jsondocument/clear/ + // https://arduinojson.org/v7/api/jsondocument/clear/ void clear() { resources_.clear(); data_.reset(); } // Returns true if the root is of the specified type. - // https://arduinojson.org/v6/api/jsondocument/is/ + // https://arduinojson.org/v7/api/jsondocument/is/ template bool is() { return getVariant().template is(); } // Returns true if the root is of the specified type. - // https://arduinojson.org/v6/api/jsondocument/is/ + // https://arduinojson.org/v7/api/jsondocument/is/ template bool is() const { return getVariant().template is(); } // Returns true if the root is null. - // https://arduinojson.org/v6/api/jsondocument/isnull/ + // https://arduinojson.org/v7/api/jsondocument/isnull/ bool isNull() const { return getVariant().isNull(); } // Returns trues if the memory pool was too small. - // https://arduinojson.org/v6/api/jsondocument/overflowed/ + // https://arduinojson.org/v7/api/jsondocument/overflowed/ bool overflowed() const { return resources_.overflowed(); } // Returns the depth (nesting level) of the array. - // https://arduinojson.org/v6/api/jsondocument/nesting/ + // https://arduinojson.org/v7/api/jsondocument/nesting/ size_t nesting() const { return data_.nesting(&resources_); } // Returns the number of elements in the root array or object. - // https://arduinojson.org/v6/api/jsondocument/size/ + // https://arduinojson.org/v7/api/jsondocument/size/ size_t size() const { return data_.size(&resources_); } // Copies the specified document. - // https://arduinojson.org/v6/api/jsondocument/set/ + // https://arduinojson.org/v7/api/jsondocument/set/ bool set(const JsonDocument& src) { return to().set(src.as()); } // Replaces the root with the specified value. - // https://arduinojson.org/v6/api/jsondocument/set/ + // https://arduinojson.org/v7/api/jsondocument/set/ template typename detail::enable_if::value, bool>::type @@ -145,7 +145,7 @@ class JsonDocument : public detail::VariantOperators { } // Clears the document and converts it to the specified type. - // https://arduinojson.org/v6/api/jsondocument/to/ + // https://arduinojson.org/v7/api/jsondocument/to/ template typename detail::VariantTo::type to() { clear(); @@ -153,21 +153,21 @@ class JsonDocument : public detail::VariantOperators { } // Returns true if the root object contains the specified key. - // https://arduinojson.org/v6/api/jsondocument/containskey/ + // https://arduinojson.org/v7/api/jsondocument/containskey/ template bool containsKey(TChar* key) const { return data_.getMember(detail::adaptString(key), &resources_) != 0; } // Returns true if the root object contains the specified key. - // https://arduinojson.org/v6/api/jsondocument/containskey/ + // https://arduinojson.org/v7/api/jsondocument/containskey/ template bool containsKey(const TString& key) const { return data_.getMember(detail::adaptString(key), &resources_) != 0; } // Gets or sets a root object's member. - // https://arduinojson.org/v6/api/jsondocument/subscript/ + // https://arduinojson.org/v7/api/jsondocument/subscript/ template FORCE_INLINE typename detail::enable_if< detail::IsString::value, @@ -177,7 +177,7 @@ class JsonDocument : public detail::VariantOperators { } // Gets or sets a root object's member. - // https://arduinojson.org/v6/api/jsondocument/subscript/ + // https://arduinojson.org/v7/api/jsondocument/subscript/ template FORCE_INLINE typename detail::enable_if< detail::IsString::value, @@ -187,7 +187,7 @@ class JsonDocument : public detail::VariantOperators { } // Gets a root object's member. - // https://arduinojson.org/v6/api/jsondocument/subscript/ + // https://arduinojson.org/v7/api/jsondocument/subscript/ template FORCE_INLINE typename detail::enable_if::value, JsonVariantConst>::type @@ -197,7 +197,7 @@ class JsonDocument : public detail::VariantOperators { } // Gets a root object's member. - // https://arduinojson.org/v6/api/jsondocument/subscript/ + // https://arduinojson.org/v7/api/jsondocument/subscript/ template FORCE_INLINE typename detail::enable_if::value, JsonVariantConst>::type @@ -207,20 +207,20 @@ class JsonDocument : public detail::VariantOperators { } // Gets or sets a root array's element. - // https://arduinojson.org/v6/api/jsondocument/subscript/ + // https://arduinojson.org/v7/api/jsondocument/subscript/ FORCE_INLINE detail::ElementProxy operator[](size_t index) { return {*this, index}; } // Gets a root array's member. - // https://arduinojson.org/v6/api/jsondocument/subscript/ + // https://arduinojson.org/v7/api/jsondocument/subscript/ FORCE_INLINE JsonVariantConst operator[](size_t index) const { return JsonVariantConst(data_.getElement(index, &resources_), &resources_); } // Appends a new (empty) element to the root array. // Returns a reference to the new element. - // https://arduinojson.org/v6/api/jsondocument/add/ + // https://arduinojson.org/v7/api/jsondocument/add/ template typename detail::enable_if::value, T>::type add() { @@ -229,7 +229,7 @@ class JsonDocument : public detail::VariantOperators { // Appends a new (null) element to the root array. // Returns a reference to the new element. - // https://arduinojson.org/v6/api/jsondocument/add/ + // https://arduinojson.org/v7/api/jsondocument/add/ template typename detail::enable_if::value, T>::type add() { @@ -237,14 +237,14 @@ class JsonDocument : public detail::VariantOperators { } // Appends a value to the root array. - // https://arduinojson.org/v6/api/jsondocument/add/ + // https://arduinojson.org/v7/api/jsondocument/add/ template FORCE_INLINE bool add(const TValue& value) { return add().set(value); } // Appends a value to the root array. - // https://arduinojson.org/v6/api/jsondocument/add/ + // https://arduinojson.org/v7/api/jsondocument/add/ template FORCE_INLINE bool add(TChar* value) { return add().set(value); @@ -252,14 +252,14 @@ class JsonDocument : public detail::VariantOperators { // Removes an element of the root array. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsondocument/remove/ + // https://arduinojson.org/v7/api/jsondocument/remove/ FORCE_INLINE void remove(size_t index) { detail::VariantData::removeElement(getData(), index, getResourceManager()); } // Removes a member of the root object. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsondocument/remove/ + // https://arduinojson.org/v7/api/jsondocument/remove/ template FORCE_INLINE typename detail::enable_if::value>::type remove(TChar* key) { @@ -269,7 +269,7 @@ class JsonDocument : public detail::VariantOperators { // Removes a member of the root object. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsondocument/remove/ + // https://arduinojson.org/v7/api/jsondocument/remove/ template FORCE_INLINE typename detail::enable_if::value>::type diff --git a/src/ArduinoJson/Json/JsonDeserializer.hpp b/src/ArduinoJson/Json/JsonDeserializer.hpp index c3f554ea..9b3a13fe 100644 --- a/src/ArduinoJson/Json/JsonDeserializer.hpp +++ b/src/ArduinoJson/Json/JsonDeserializer.hpp @@ -669,7 +669,7 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Parses a JSON input, filters, and puts the result in a JsonDocument. -// https://arduinojson.org/v6/api/json/deserializejson/ +// https://arduinojson.org/v7/api/json/deserializejson/ template typename detail::enable_if< detail::is_deserialize_destination::value, @@ -681,7 +681,7 @@ deserializeJson(TDestination&& dst, Args&&... args) { } // Parses a JSON input, filters, and puts the result in a JsonDocument. -// https://arduinojson.org/v6/api/json/deserializejson/ +// https://arduinojson.org/v7/api/json/deserializejson/ template typename detail::enable_if< detail::is_deserialize_destination::value, diff --git a/src/ArduinoJson/Json/JsonSerializer.hpp b/src/ArduinoJson/Json/JsonSerializer.hpp index 45243cba..f9c678d9 100644 --- a/src/ArduinoJson/Json/JsonSerializer.hpp +++ b/src/ArduinoJson/Json/JsonSerializer.hpp @@ -124,7 +124,7 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Produces a minified JSON document. -// https://arduinojson.org/v6/api/json/serializejson/ +// https://arduinojson.org/v7/api/json/serializejson/ template size_t serializeJson(JsonVariantConst source, TDestination& destination) { using namespace detail; @@ -132,7 +132,7 @@ size_t serializeJson(JsonVariantConst source, TDestination& destination) { } // Produces a minified JSON document. -// https://arduinojson.org/v6/api/json/serializejson/ +// https://arduinojson.org/v7/api/json/serializejson/ inline size_t serializeJson(JsonVariantConst source, void* buffer, size_t bufferSize) { using namespace detail; @@ -140,7 +140,7 @@ inline size_t serializeJson(JsonVariantConst source, void* buffer, } // Computes the length of the document that serializeJson() produces. -// https://arduinojson.org/v6/api/json/measurejson/ +// https://arduinojson.org/v7/api/json/measurejson/ inline size_t measureJson(JsonVariantConst source) { using namespace detail; return measure(source); diff --git a/src/ArduinoJson/Json/PrettyJsonSerializer.hpp b/src/ArduinoJson/Json/PrettyJsonSerializer.hpp index 4167c9e5..c1692925 100644 --- a/src/ArduinoJson/Json/PrettyJsonSerializer.hpp +++ b/src/ArduinoJson/Json/PrettyJsonSerializer.hpp @@ -79,7 +79,7 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Produces JsonDocument to create a prettified JSON document. -// https://arduinojson.org/v6/api/json/serializejsonpretty/ +// https://arduinojson.org/v7/api/json/serializejsonpretty/ template size_t serializeJsonPretty(JsonVariantConst source, TDestination& destination) { using namespace ArduinoJson::detail; @@ -87,7 +87,7 @@ size_t serializeJsonPretty(JsonVariantConst source, TDestination& destination) { } // Produces JsonDocument to create a prettified JSON document. -// https://arduinojson.org/v6/api/json/serializejsonpretty/ +// https://arduinojson.org/v7/api/json/serializejsonpretty/ inline size_t serializeJsonPretty(JsonVariantConst source, void* buffer, size_t bufferSize) { using namespace ArduinoJson::detail; @@ -95,7 +95,7 @@ inline size_t serializeJsonPretty(JsonVariantConst source, void* buffer, } // Computes the length of the document that serializeJsonPretty() produces. -// https://arduinojson.org/v6/api/json/measurejsonpretty/ +// https://arduinojson.org/v7/api/json/measurejsonpretty/ inline size_t measureJsonPretty(JsonVariantConst source) { using namespace ArduinoJson::detail; return measure(source); diff --git a/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp b/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp index f86863e3..d7318969 100644 --- a/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp +++ b/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp @@ -559,7 +559,7 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Parses a MessagePack input and puts the result in a JsonDocument. -// https://arduinojson.org/v6/api/msgpack/deserializemsgpack/ +// https://arduinojson.org/v7/api/msgpack/deserializemsgpack/ template typename detail::enable_if< detail::is_deserialize_destination::value, @@ -571,7 +571,7 @@ deserializeMsgPack(TDestination&& dst, Args&&... args) { } // Parses a MessagePack input and puts the result in a JsonDocument. -// https://arduinojson.org/v6/api/msgpack/deserializemsgpack/ +// https://arduinojson.org/v7/api/msgpack/deserializemsgpack/ template typename detail::enable_if< detail::is_deserialize_destination::value, diff --git a/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp b/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp index 1821d3c2..d14ec4bf 100644 --- a/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +++ b/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp @@ -211,7 +211,7 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Produces a MessagePack document. -// https://arduinojson.org/v6/api/msgpack/serializemsgpack/ +// https://arduinojson.org/v7/api/msgpack/serializemsgpack/ template inline size_t serializeMsgPack(JsonVariantConst source, TDestination& output) { using namespace ArduinoJson::detail; @@ -219,7 +219,7 @@ inline size_t serializeMsgPack(JsonVariantConst source, TDestination& output) { } // Produces a MessagePack document. -// https://arduinojson.org/v6/api/msgpack/serializemsgpack/ +// https://arduinojson.org/v7/api/msgpack/serializemsgpack/ inline size_t serializeMsgPack(JsonVariantConst source, void* output, size_t size) { using namespace ArduinoJson::detail; @@ -227,7 +227,7 @@ inline size_t serializeMsgPack(JsonVariantConst source, void* output, } // Computes the length of the document that serializeMsgPack() produces. -// https://arduinojson.org/v6/api/msgpack/measuremsgpack/ +// https://arduinojson.org/v7/api/msgpack/measuremsgpack/ inline size_t measureMsgPack(JsonVariantConst source) { using namespace ArduinoJson::detail; return measure(source); diff --git a/src/ArduinoJson/Numbers/JsonInteger.hpp b/src/ArduinoJson/Numbers/JsonInteger.hpp index 91005653..a6298238 100644 --- a/src/ArduinoJson/Numbers/JsonInteger.hpp +++ b/src/ArduinoJson/Numbers/JsonInteger.hpp @@ -25,4 +25,4 @@ ARDUINOJSON_END_PUBLIC_NAMESPACE static_assert(sizeof(T) <= sizeof(ArduinoJson::JsonInteger), \ "To use 64-bit integers with ArduinoJson, you must set " \ "ARDUINOJSON_USE_LONG_LONG to 1. See " \ - "https://arduinojson.org/v6/api/config/use_long_long/"); + "https://arduinojson.org/v7/api/config/use_long_long/"); diff --git a/src/ArduinoJson/Object/JsonObject.hpp b/src/ArduinoJson/Object/JsonObject.hpp index 60e1e4e9..ce04b783 100644 --- a/src/ArduinoJson/Object/JsonObject.hpp +++ b/src/ArduinoJson/Object/JsonObject.hpp @@ -12,7 +12,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE class JsonArray; // A reference to an object in a JsonDocument. -// https://arduinojson.org/v6/api/jsonobject/ +// https://arduinojson.org/v7/api/jsonobject/ class JsonObject : public detail::VariantOperators { friend class detail::VariantAttorney; @@ -42,31 +42,31 @@ class JsonObject : public detail::VariantOperators { } // Returns true if the reference is unbound. - // https://arduinojson.org/v6/api/jsonobject/isnull/ + // https://arduinojson.org/v7/api/jsonobject/isnull/ FORCE_INLINE bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. - // https://arduinojson.org/v6/api/jsonobject/isnull/ + // https://arduinojson.org/v7/api/jsonobject/isnull/ FORCE_INLINE operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the object. - // https://arduinojson.org/v6/api/jsonobject/nesting/ + // https://arduinojson.org/v7/api/jsonobject/nesting/ FORCE_INLINE size_t nesting() const { return detail::VariantData::nesting(collectionToVariant(data_), resources_); } // Returns the number of members in the object. - // https://arduinojson.org/v6/api/jsonobject/size/ + // https://arduinojson.org/v7/api/jsonobject/size/ FORCE_INLINE size_t size() const { return data_ ? data_->size(resources_) : 0; } // Returns an iterator to the first key-value pair of the object. - // https://arduinojson.org/v6/api/jsonobject/begin/ + // https://arduinojson.org/v7/api/jsonobject/begin/ FORCE_INLINE iterator begin() const { if (!data_) return iterator(); @@ -74,20 +74,20 @@ class JsonObject : public detail::VariantOperators { } // Returns an iterator following the last key-value pair of the object. - // https://arduinojson.org/v6/api/jsonobject/end/ + // https://arduinojson.org/v7/api/jsonobject/end/ FORCE_INLINE iterator end() const { return iterator(); } // Removes all the members of the object. // ⚠️ Doesn't release the memory associated with the removed members. - // https://arduinojson.org/v6/api/jsonobject/clear/ + // https://arduinojson.org/v7/api/jsonobject/clear/ void clear() const { detail::ObjectData::clear(data_, resources_); } // Copies an object. - // https://arduinojson.org/v6/api/jsonobject/set/ + // https://arduinojson.org/v7/api/jsonobject/set/ FORCE_INLINE bool set(JsonObjectConst src) { if (!data_ || !src.data_) return false; @@ -102,7 +102,7 @@ class JsonObject : public detail::VariantOperators { } // Gets or sets the member with specified key. - // https://arduinojson.org/v6/api/jsonobject/subscript/ + // https://arduinojson.org/v7/api/jsonobject/subscript/ template FORCE_INLINE typename detail::enable_if::value, @@ -112,7 +112,7 @@ class JsonObject : public detail::VariantOperators { } // Gets or sets the member with specified key. - // https://arduinojson.org/v6/api/jsonobject/subscript/ + // https://arduinojson.org/v7/api/jsonobject/subscript/ template FORCE_INLINE typename detail::enable_if::value, @@ -123,14 +123,14 @@ class JsonObject : public detail::VariantOperators { // Removes the member at the specified iterator. // ⚠️ Doesn't release the memory associated with the removed member. - // https://arduinojson.org/v6/api/jsonobject/remove/ + // https://arduinojson.org/v7/api/jsonobject/remove/ FORCE_INLINE void remove(iterator it) const { detail::ObjectData::remove(data_, it.iterator_, resources_); } // Removes the member with the specified key. // ⚠️ Doesn't release the memory associated with the removed member. - // https://arduinojson.org/v6/api/jsonobject/remove/ + // https://arduinojson.org/v7/api/jsonobject/remove/ template FORCE_INLINE void remove(const TString& key) const { detail::ObjectData::removeMember(data_, detail::adaptString(key), @@ -139,7 +139,7 @@ class JsonObject : public detail::VariantOperators { // Removes the member with the specified key. // ⚠️ Doesn't release the memory associated with the removed member. - // https://arduinojson.org/v6/api/jsonobject/remove/ + // https://arduinojson.org/v7/api/jsonobject/remove/ template FORCE_INLINE void remove(TChar* key) const { detail::ObjectData::removeMember(data_, detail::adaptString(key), @@ -147,7 +147,7 @@ class JsonObject : public detail::VariantOperators { } // Returns true if the object contains the specified key. - // https://arduinojson.org/v6/api/jsonobject/containskey/ + // https://arduinojson.org/v7/api/jsonobject/containskey/ template FORCE_INLINE typename detail::enable_if::value, bool>::type @@ -157,7 +157,7 @@ class JsonObject : public detail::VariantOperators { } // Returns true if the object contains the specified key. - // https://arduinojson.org/v6/api/jsonobject/containskey/ + // https://arduinojson.org/v7/api/jsonobject/containskey/ template FORCE_INLINE typename detail::enable_if::value, bool>::type diff --git a/src/ArduinoJson/Object/JsonObjectConst.hpp b/src/ArduinoJson/Object/JsonObjectConst.hpp index 8ce4dc77..cc9de2dd 100644 --- a/src/ArduinoJson/Object/JsonObjectConst.hpp +++ b/src/ArduinoJson/Object/JsonObjectConst.hpp @@ -10,7 +10,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A read-only reference to an object in a JsonDocument. -// https://arduinojson.org/v6/api/jsonobjectconst/ +// https://arduinojson.org/v7/api/jsonobjectconst/ class JsonObjectConst : public detail::VariantOperators { friend class JsonObject; friend class detail::VariantAttorney; @@ -31,31 +31,31 @@ class JsonObjectConst : public detail::VariantOperators { } // Returns true if the reference is unbound. - // https://arduinojson.org/v6/api/jsonobjectconst/isnull/ + // https://arduinojson.org/v7/api/jsonobjectconst/isnull/ FORCE_INLINE bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. - // https://arduinojson.org/v6/api/jsonobjectconst/isnull/ + // https://arduinojson.org/v7/api/jsonobjectconst/isnull/ FORCE_INLINE operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the object. - // https://arduinojson.org/v6/api/jsonobjectconst/nesting/ + // https://arduinojson.org/v7/api/jsonobjectconst/nesting/ FORCE_INLINE size_t nesting() const { return detail::VariantData::nesting(collectionToVariant(data_), resources_); } // Returns the number of members in the object. - // https://arduinojson.org/v6/api/jsonobjectconst/size/ + // https://arduinojson.org/v7/api/jsonobjectconst/size/ FORCE_INLINE size_t size() const { return data_ ? data_->size(resources_) : 0; } // Returns an iterator to the first key-value pair of the object. - // https://arduinojson.org/v6/api/jsonobjectconst/begin/ + // https://arduinojson.org/v7/api/jsonobjectconst/begin/ FORCE_INLINE iterator begin() const { if (!data_) return iterator(); @@ -63,13 +63,13 @@ class JsonObjectConst : public detail::VariantOperators { } // Returns an iterator following the last key-value pair of the object. - // https://arduinojson.org/v6/api/jsonobjectconst/end/ + // https://arduinojson.org/v7/api/jsonobjectconst/end/ FORCE_INLINE iterator end() const { return iterator(); } // Returns true if the object contains the specified key. - // https://arduinojson.org/v6/api/jsonobjectconst/containskey/ + // https://arduinojson.org/v7/api/jsonobjectconst/containskey/ template FORCE_INLINE bool containsKey(const TString& key) const { return detail::ObjectData::getMember(data_, detail::adaptString(key), @@ -77,7 +77,7 @@ class JsonObjectConst : public detail::VariantOperators { } // Returns true if the object contains the specified key. - // https://arduinojson.org/v6/api/jsonobjectconst/containskey/ + // https://arduinojson.org/v7/api/jsonobjectconst/containskey/ template FORCE_INLINE bool containsKey(TChar* key) const { return detail::ObjectData::getMember(data_, detail::adaptString(key), @@ -85,7 +85,7 @@ class JsonObjectConst : public detail::VariantOperators { } // Gets the member with specified key. - // https://arduinojson.org/v6/api/jsonobjectconst/subscript/ + // https://arduinojson.org/v7/api/jsonobjectconst/subscript/ template FORCE_INLINE typename detail::enable_if::value, JsonVariantConst>::type @@ -96,7 +96,7 @@ class JsonObjectConst : public detail::VariantOperators { } // Gets the member with specified key. - // https://arduinojson.org/v6/api/jsonobjectconst/subscript/ + // https://arduinojson.org/v7/api/jsonobjectconst/subscript/ template FORCE_INLINE typename detail::enable_if::value, JsonVariantConst>::type diff --git a/src/ArduinoJson/Object/JsonPair.hpp b/src/ArduinoJson/Object/JsonPair.hpp index 06e9fa71..499cf8bc 100644 --- a/src/ArduinoJson/Object/JsonPair.hpp +++ b/src/ArduinoJson/Object/JsonPair.hpp @@ -11,7 +11,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A key-value pair. -// https://arduinojson.org/v6/api/jsonobject/begin_end/ +// https://arduinojson.org/v7/api/jsonobject/begin_end/ class JsonPair { public: // INTERNAL USE ONLY @@ -40,7 +40,7 @@ class JsonPair { }; // A read-only key-value pair. -// https://arduinojson.org/v6/api/jsonobjectconst/begin_end/ +// https://arduinojson.org/v7/api/jsonobjectconst/begin_end/ class JsonPairConst { public: JsonPairConst(detail::ObjectData::iterator iterator, diff --git a/src/ArduinoJson/Object/MemberProxy.hpp b/src/ArduinoJson/Object/MemberProxy.hpp index 3ce5ddb7..1616dabf 100644 --- a/src/ArduinoJson/Object/MemberProxy.hpp +++ b/src/ArduinoJson/Object/MemberProxy.hpp @@ -9,7 +9,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE // A proxy class to get or set a member of an object. -// https://arduinojson.org/v6/api/jsonobject/subscript/ +// https://arduinojson.org/v7/api/jsonobject/subscript/ template class MemberProxy : public VariantRefBase>, diff --git a/src/ArduinoJson/Strings/JsonString.hpp b/src/ArduinoJson/Strings/JsonString.hpp index 538dbc8a..eb17b2c9 100644 --- a/src/ArduinoJson/Strings/JsonString.hpp +++ b/src/ArduinoJson/Strings/JsonString.hpp @@ -11,7 +11,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A string. -// https://arduinojson.org/v6/api/jsonstring/ +// https://arduinojson.org/v7/api/jsonstring/ class JsonString { public: enum Ownership { Copied, Linked }; diff --git a/src/ArduinoJson/Variant/Converter.hpp b/src/ArduinoJson/Variant/Converter.hpp index 8a63d996..e6e3b239 100644 --- a/src/ArduinoJson/Variant/Converter.hpp +++ b/src/ArduinoJson/Variant/Converter.hpp @@ -17,7 +17,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE // clang-format off template -class InvalidConversion; // Error here? See https://arduinojson.org/v6/invalid-conversion/ +class InvalidConversion; // Error here? See https://arduinojson.org/v7/invalid-conversion/ // clang-format on template diff --git a/src/ArduinoJson/Variant/ConverterImpl.hpp b/src/ArduinoJson/Variant/ConverterImpl.hpp index 4e6ed951..fbfd4f3e 100644 --- a/src/ArduinoJson/Variant/ConverterImpl.hpp +++ b/src/ArduinoJson/Variant/ConverterImpl.hpp @@ -15,14 +15,14 @@ template struct Converter { static void toJson(const T& src, JsonVariant dst) { // clang-format off - convertToJson(src, dst); // Error here? See https://arduinojson.org/v6/unsupported-set/ + convertToJson(src, dst); // Error here? See https://arduinojson.org/v7/unsupported-set/ // clang-format on } static T fromJson(JsonVariantConst src) { // clang-format off - T result; // Error here? See https://arduinojson.org/v6/non-default-constructible/ - convertFromJson(src, result); // Error here? See https://arduinojson.org/v6/unsupported-as/ + T result; // Error here? See https://arduinojson.org/v7/non-default-constructible/ + convertFromJson(src, result); // Error here? See https://arduinojson.org/v7/unsupported-as/ // clang-format on return result; } @@ -30,7 +30,7 @@ struct Converter { static bool checkJson(JsonVariantConst src) { T dummy = T(); // clang-format off - return canConvertFromJson(src, dummy); // Error here? See https://arduinojson.org/v6/unsupported-is/ + return canConvertFromJson(src, dummy); // Error here? See https://arduinojson.org/v7/unsupported-is/ // clang-format on } }; diff --git a/src/ArduinoJson/Variant/JsonVariant.hpp b/src/ArduinoJson/Variant/JsonVariant.hpp index 1cd0ccff..da53d83e 100644 --- a/src/ArduinoJson/Variant/JsonVariant.hpp +++ b/src/ArduinoJson/Variant/JsonVariant.hpp @@ -9,7 +9,7 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // A reference to a value in a JsonDocument. -// https://arduinojson.org/v6/api/jsonvariant/ +// https://arduinojson.org/v7/api/jsonvariant/ class JsonVariant : public detail::VariantRefBase, public detail::VariantOperators { friend class detail::VariantAttorney; diff --git a/src/ArduinoJson/Variant/JsonVariantConst.hpp b/src/ArduinoJson/Variant/JsonVariantConst.hpp index 03ca50f9..16a65f95 100644 --- a/src/ArduinoJson/Variant/JsonVariantConst.hpp +++ b/src/ArduinoJson/Variant/JsonVariantConst.hpp @@ -22,7 +22,7 @@ class JsonArray; class JsonObject; // A read-only reference to a value in a JsonDocument -// https://arduinojson.org/v6/api/jsonarrayconst/ +// https://arduinojson.org/v7/api/jsonarrayconst/ class JsonVariantConst : public detail::VariantTag, public detail::VariantOperators { friend class detail::VariantAttorney; @@ -37,7 +37,7 @@ class JsonVariantConst : public detail::VariantTag, : data_(data), resources_(resources) {} // Returns true if the value is null or the reference is unbound. - // https://arduinojson.org/v6/api/jsonvariantconst/isnull/ + // https://arduinojson.org/v7/api/jsonvariantconst/isnull/ FORCE_INLINE bool isNull() const { return detail::VariantData::isNull(data_); } @@ -48,19 +48,19 @@ class JsonVariantConst : public detail::VariantTag, } // Returns the depth (nesting level) of the value. - // https://arduinojson.org/v6/api/jsonvariantconst/nesting/ + // https://arduinojson.org/v7/api/jsonvariantconst/nesting/ FORCE_INLINE size_t nesting() const { return detail::VariantData::nesting(data_, resources_); } // Returns the size of the array or object. - // https://arduinojson.org/v6/api/jsonvariantconst/size/ + // https://arduinojson.org/v7/api/jsonvariantconst/size/ size_t size() const { return detail::VariantData::size(data_, resources_); } // Casts the value to the specified type. - // https://arduinojson.org/v6/api/jsonvariantconst/as/ + // https://arduinojson.org/v7/api/jsonvariantconst/as/ template FORCE_INLINE typename detail::enable_if::value && !detail::is_same::value, @@ -70,7 +70,7 @@ class JsonVariantConst : public detail::VariantTag, } // Returns true if the value is of the specified type. - // https://arduinojson.org/v6/api/jsonvariantconst/is/ + // https://arduinojson.org/v7/api/jsonvariantconst/is/ template FORCE_INLINE typename detail::enable_if::value && !detail::is_same::value, @@ -85,14 +85,14 @@ class JsonVariantConst : public detail::VariantTag, } // Gets array's element at specified index. - // https://arduinojson.org/v6/api/jsonvariantconst/subscript/ + // https://arduinojson.org/v7/api/jsonvariantconst/subscript/ FORCE_INLINE JsonVariantConst operator[](size_t index) const { return JsonVariantConst( detail::VariantData::getElement(data_, index, resources_), resources_); } // Gets object's member with specified key. - // https://arduinojson.org/v6/api/jsonvariantconst/subscript/ + // https://arduinojson.org/v7/api/jsonvariantconst/subscript/ template FORCE_INLINE typename detail::enable_if::value, JsonVariantConst>::type @@ -103,7 +103,7 @@ class JsonVariantConst : public detail::VariantTag, } // Gets object's member with specified key. - // https://arduinojson.org/v6/api/jsonvariantconst/subscript/ + // https://arduinojson.org/v7/api/jsonvariantconst/subscript/ template FORCE_INLINE typename detail::enable_if::value, JsonVariantConst>::type @@ -114,7 +114,7 @@ class JsonVariantConst : public detail::VariantTag, } // Returns true if tge object contains the specified key. - // https://arduinojson.org/v6/api/jsonvariantconst/containskey/ + // https://arduinojson.org/v7/api/jsonvariantconst/containskey/ template FORCE_INLINE typename detail::enable_if::value, bool>::type @@ -124,7 +124,7 @@ class JsonVariantConst : public detail::VariantTag, } // Returns true if tge object contains the specified key. - // https://arduinojson.org/v6/api/jsonvariantconst/containskey/ + // https://arduinojson.org/v7/api/jsonvariantconst/containskey/ template FORCE_INLINE typename detail::enable_if::value, bool>::type diff --git a/src/ArduinoJson/Variant/VariantRefBase.hpp b/src/ArduinoJson/Variant/VariantRefBase.hpp index 6353d9dc..97422c1e 100644 --- a/src/ArduinoJson/Variant/VariantRefBase.hpp +++ b/src/ArduinoJson/Variant/VariantRefBase.hpp @@ -28,13 +28,13 @@ class VariantRefBase : public VariantTag { public: // Sets the value to null. // ⚠️ Doesn't release the memory associated with the previous value. - // https://arduinojson.org/v6/api/jsonvariant/clear/ + // https://arduinojson.org/v7/api/jsonvariant/clear/ FORCE_INLINE void clear() const { VariantData::setNull(getOrCreateData(), getResourceManager()); } // Returns true if the value is null or the reference is unbound. - // https://arduinojson.org/v6/api/jsonvariant/isnull/ + // https://arduinojson.org/v7/api/jsonvariant/isnull/ FORCE_INLINE bool isNull() const { return VariantData::isNull(getData()); } @@ -45,7 +45,7 @@ class VariantRefBase : public VariantTag { } // Casts the value to the specified type. - // https://arduinojson.org/v6/api/jsonvariant/as/ + // https://arduinojson.org/v7/api/jsonvariant/as/ template FORCE_INLINE typename enable_if::value, T>::type @@ -54,7 +54,7 @@ class VariantRefBase : public VariantTag { } // Casts the value to the specified type. - // https://arduinojson.org/v6/api/jsonvariant/as/ + // https://arduinojson.org/v7/api/jsonvariant/as/ template FORCE_INLINE typename enable_if::value, T>::type as() const { @@ -68,26 +68,26 @@ class VariantRefBase : public VariantTag { // Sets the value to an empty array. // ⚠️ Doesn't release the memory associated with the previous value. - // https://arduinojson.org/v6/api/jsonvariant/to/ + // https://arduinojson.org/v7/api/jsonvariant/to/ template typename enable_if::value, JsonArray>::type to() const; // Sets the value to an empty object. // ⚠️ Doesn't release the memory associated with the previous value. - // https://arduinojson.org/v6/api/jsonvariant/to/ + // https://arduinojson.org/v7/api/jsonvariant/to/ template typename enable_if::value, JsonObject>::type to() const; // Sets the value to null. // ⚠️ Doesn't release the memory associated with the previous value. - // https://arduinojson.org/v6/api/jsonvariant/to/ + // https://arduinojson.org/v7/api/jsonvariant/to/ template typename enable_if::value, JsonVariant>::type to() const; // Returns true if the value is of the specified type. - // https://arduinojson.org/v6/api/jsonvariant/is/ + // https://arduinojson.org/v7/api/jsonvariant/is/ template FORCE_INLINE typename enable_if::value, bool>::type @@ -96,7 +96,7 @@ class VariantRefBase : public VariantTag { } // Returns true if the value is of the specified type. - // https://arduinojson.org/v6/api/jsonvariant/is/ + // https://arduinojson.org/v7/api/jsonvariant/is/ template FORCE_INLINE typename enable_if::value && !is_same::value && @@ -107,7 +107,7 @@ class VariantRefBase : public VariantTag { } // Copies the specified value. - // https://arduinojson.org/v6/api/jsonvariant/set/ + // https://arduinojson.org/v7/api/jsonvariant/set/ template FORCE_INLINE bool set(const T& value) const { Converter::toJson(value, getOrCreateVariant()); @@ -116,7 +116,7 @@ class VariantRefBase : public VariantTag { } // Copies the specified value. - // https://arduinojson.org/v6/api/jsonvariant/set/ + // https://arduinojson.org/v7/api/jsonvariant/set/ template FORCE_INLINE bool set(T* value) const { Converter::toJson(value, getOrCreateVariant()); @@ -125,20 +125,20 @@ class VariantRefBase : public VariantTag { } // Returns the size of the array or object. - // https://arduinojson.org/v6/api/jsonvariant/size/ + // https://arduinojson.org/v7/api/jsonvariant/size/ FORCE_INLINE size_t size() const { return VariantData::size(getData(), getResourceManager()); } // Returns the depth (nesting level) of the value. - // https://arduinojson.org/v6/api/jsonvariant/nesting/ + // https://arduinojson.org/v7/api/jsonvariant/nesting/ FORCE_INLINE size_t nesting() const { return VariantData::nesting(getData(), getResourceManager()); } // Appends a new (empty) element to the array. // Returns a reference to the new element. - // https://arduinojson.org/v6/api/jsonvariant/add/ + // https://arduinojson.org/v7/api/jsonvariant/add/ template typename enable_if::value, T>::type add() const { return add().template to(); @@ -146,19 +146,19 @@ class VariantRefBase : public VariantTag { // Appends a new (null) element to the array. // Returns a reference to the new element. - // https://arduinojson.org/v6/api/jsonvariant/add/ + // https://arduinojson.org/v7/api/jsonvariant/add/ template typename enable_if::value, T>::type add() const; // Appends a value to the array. - // https://arduinojson.org/v6/api/jsonvariant/add/ + // https://arduinojson.org/v7/api/jsonvariant/add/ template FORCE_INLINE bool add(const T& value) const { return add().set(value); } // Appends a value to the array. - // https://arduinojson.org/v6/api/jsonvariant/add/ + // https://arduinojson.org/v7/api/jsonvariant/add/ template FORCE_INLINE bool add(T* value) const { return add().set(value); @@ -166,14 +166,14 @@ class VariantRefBase : public VariantTag { // Removes an element of the array. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsonvariant/remove/ + // https://arduinojson.org/v7/api/jsonvariant/remove/ FORCE_INLINE void remove(size_t index) const { VariantData::removeElement(getData(), index, getResourceManager()); } // Removes a member of the object. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsonvariant/remove/ + // https://arduinojson.org/v7/api/jsonvariant/remove/ template FORCE_INLINE typename enable_if::value>::type remove( TChar* key) const { @@ -183,7 +183,7 @@ class VariantRefBase : public VariantTag { // Removes a member of the object. // ⚠️ Doesn't release the memory associated with the removed element. - // https://arduinojson.org/v6/api/jsonvariant/remove/ + // https://arduinojson.org/v7/api/jsonvariant/remove/ template FORCE_INLINE typename enable_if::value>::type remove( const TString& key) const { @@ -192,30 +192,30 @@ class VariantRefBase : public VariantTag { } // Gets or sets an array element. - // https://arduinojson.org/v6/api/jsonvariant/subscript/ + // https://arduinojson.org/v7/api/jsonvariant/subscript/ FORCE_INLINE ElementProxy operator[](size_t index) const; // Returns true if the object contains the specified key. - // https://arduinojson.org/v6/api/jsonvariant/containskey/ + // https://arduinojson.org/v7/api/jsonvariant/containskey/ template FORCE_INLINE typename enable_if::value, bool>::type containsKey(const TString& key) const; // Returns true if the object contains the specified key. - // https://arduinojson.org/v6/api/jsonvariant/containskey/ + // https://arduinojson.org/v7/api/jsonvariant/containskey/ template FORCE_INLINE typename enable_if::value, bool>::type containsKey(TChar* key) const; // Gets or sets an object member. - // https://arduinojson.org/v6/api/jsonvariant/subscript/ + // https://arduinojson.org/v7/api/jsonvariant/subscript/ template FORCE_INLINE typename enable_if::value, MemberProxy>::type operator[](const TString& key) const; // Gets or sets an object member. - // https://arduinojson.org/v6/api/jsonvariant/subscript/ + // https://arduinojson.org/v7/api/jsonvariant/subscript/ template FORCE_INLINE typename enable_if::value, MemberProxy>::type diff --git a/src/ArduinoJson/compatibility.hpp b/src/ArduinoJson/compatibility.hpp index b2d745aa..f7123dee 100644 --- a/src/ArduinoJson/compatibility.hpp +++ b/src/ArduinoJson/compatibility.hpp @@ -23,7 +23,7 @@ #define ARDUINOJSON_STRINGIFY(S) #S #define ARDUINOJSON_DEPRECATION_ERROR(X, Y) \ - ARDUINOJSON_COMPILE_ERROR(ARDUINOJSON_STRINGIFY(X is a Y from ArduinoJson 5. Please see https:/\/arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6)) + ARDUINOJSON_COMPILE_ERROR(ARDUINOJSON_STRINGIFY(X is a Y from ArduinoJson 5. Please see https:/\/arduinojson.org/v7/upgrade-from-v5/ to learn how to upgrade to ArduinoJson 7)) #define StaticJsonBuffer ARDUINOJSON_DEPRECATION_ERROR(StaticJsonBuffer, class) #define DynamicJsonBuffer ARDUINOJSON_DEPRECATION_ERROR(DynamicJsonBuffer, class)