|
13 | 13 | #include <ArduinoJson/Numbers/parseNumber.hpp>
|
14 | 14 | #include <ArduinoJson/Polyfills/assert.hpp>
|
15 | 15 | #include <ArduinoJson/Polyfills/type_traits.hpp>
|
| 16 | +#include <ArduinoJson/Polyfills/utility.hpp> |
16 | 17 | #include <ArduinoJson/Variant/VariantData.hpp>
|
17 | 18 |
|
18 | 19 | ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
|
@@ -671,137 +672,22 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE
|
671 | 672 |
|
672 | 673 | ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
|
673 | 674 |
|
674 |
| -// Parses a JSON input and puts the result in a JsonDocument. |
675 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
676 |
| -template <typename TString> |
677 |
| -DeserializationError deserializeJson( |
678 |
| - JsonDocument& doc, const TString& input, |
679 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
680 |
| - using namespace detail; |
681 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, |
682 |
| - AllowAllFilter()); |
683 |
| -} |
684 |
| - |
685 |
| -// Parses a JSON input, filters, and puts the result in a JsonDocument. |
686 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
687 |
| -template <typename TString> |
688 |
| -DeserializationError deserializeJson( |
689 |
| - JsonDocument& doc, const TString& input, |
690 |
| - DeserializationOption::Filter filter, |
691 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
692 |
| - using namespace detail; |
693 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, filter); |
694 |
| -} |
695 |
| - |
696 |
| -// Parses a JSON input, filters, and puts the result in a JsonDocument. |
697 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
698 |
| -template <typename TString> |
699 |
| -DeserializationError deserializeJson( |
700 |
| - JsonDocument& doc, const TString& input, |
701 |
| - DeserializationOption::NestingLimit nestingLimit, |
702 |
| - DeserializationOption::Filter filter) { |
703 |
| - using namespace detail; |
704 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, filter); |
705 |
| -} |
706 |
| - |
707 |
| -// Parses a JSON input and puts the result in a JsonDocument. |
708 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
709 |
| -template <typename TStream> |
710 |
| -DeserializationError deserializeJson( |
711 |
| - JsonDocument& doc, TStream& input, |
712 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
713 |
| - using namespace detail; |
714 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, |
715 |
| - AllowAllFilter()); |
716 |
| -} |
717 |
| - |
718 |
| -// Parses a JSON input, filters, and puts the result in a JsonDocument. |
719 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
720 |
| -template <typename TStream> |
721 |
| -DeserializationError deserializeJson( |
722 |
| - JsonDocument& doc, TStream& input, DeserializationOption::Filter filter, |
723 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
724 |
| - using namespace detail; |
725 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, filter); |
726 |
| -} |
727 |
| - |
728 |
| -// Parses a JSON input, filters, and puts the result in a JsonDocument. |
729 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
730 |
| -template <typename TStream> |
731 |
| -DeserializationError deserializeJson( |
732 |
| - JsonDocument& doc, TStream& input, |
733 |
| - DeserializationOption::NestingLimit nestingLimit, |
734 |
| - DeserializationOption::Filter filter) { |
735 |
| - using namespace detail; |
736 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, filter); |
737 |
| -} |
738 |
| - |
739 |
| -// Parses a JSON input and puts the result in a JsonDocument. |
740 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
741 |
| -template <typename TChar> |
742 |
| -DeserializationError deserializeJson( |
743 |
| - JsonDocument& doc, TChar* input, |
744 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
745 |
| - using namespace detail; |
746 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, |
747 |
| - AllowAllFilter()); |
748 |
| -} |
749 |
| - |
750 |
| -// Parses a JSON input, filters, and puts the result in a JsonDocument. |
751 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
752 |
| -template <typename TChar> |
753 |
| -DeserializationError deserializeJson( |
754 |
| - JsonDocument& doc, TChar* input, DeserializationOption::Filter filter, |
755 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
756 |
| - using namespace detail; |
757 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, filter); |
758 |
| -} |
759 |
| - |
760 |
| -// Parses a JSON input, filters, and puts the result in a JsonDocument. |
761 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
762 |
| -template <typename TChar> |
763 |
| -DeserializationError deserializeJson( |
764 |
| - JsonDocument& doc, TChar* input, |
765 |
| - DeserializationOption::NestingLimit nestingLimit, |
766 |
| - DeserializationOption::Filter filter) { |
767 |
| - using namespace detail; |
768 |
| - return deserialize<JsonDeserializer>(doc, input, nestingLimit, filter); |
769 |
| -} |
770 |
| - |
771 |
| -// Parses a JSON input and puts the result in a JsonDocument. |
772 |
| -// https://arduinojson.org/v6/api/json/deserializejson/ |
773 |
| -template <typename TChar> |
774 |
| -DeserializationError deserializeJson( |
775 |
| - JsonDocument& doc, TChar* input, size_t inputSize, |
776 |
| - DeserializationOption::NestingLimit nestingLimit = {}) { |
777 |
| - using namespace detail; |
778 |
| - return deserialize<JsonDeserializer>(doc, input, inputSize, nestingLimit, |
779 |
| - AllowAllFilter()); |
780 |
| -} |
781 |
| - |
782 | 675 | // Parses a JSON input, filters, and puts the result in a JsonDocument.
|
783 | 676 | // https://arduinojson.org/v6/api/json/deserializejson/
|
784 |
| -template <typename TChar> |
785 |
| -DeserializationError deserializeJson( |
786 |
| - JsonDocument& doc, TChar* input, size_t inputSize, |
787 |
| - DeserializationOption::Filter filter, |
788 |
| - DeserializationOption::NestingLimit nestingLimit = |
789 |
| - DeserializationOption::NestingLimit()) { |
| 677 | +template <typename... Args> |
| 678 | +DeserializationError deserializeJson(JsonDocument& doc, Args&&... args) { |
790 | 679 | using namespace detail;
|
791 |
| - return deserialize<JsonDeserializer>(doc, input, inputSize, nestingLimit, |
792 |
| - filter); |
| 680 | + return deserialize<JsonDeserializer>(doc, detail::forward<Args>(args)...); |
793 | 681 | }
|
794 | 682 |
|
795 | 683 | // Parses a JSON input, filters, and puts the result in a JsonDocument.
|
796 | 684 | // https://arduinojson.org/v6/api/json/deserializejson/
|
797 |
| -template <typename TChar> |
798 |
| -DeserializationError deserializeJson( |
799 |
| - JsonDocument& doc, TChar* input, size_t inputSize, |
800 |
| - DeserializationOption::NestingLimit nestingLimit, |
801 |
| - DeserializationOption::Filter filter) { |
| 685 | +template <typename TChar, typename... Args> |
| 686 | +DeserializationError deserializeJson(JsonDocument& doc, TChar* input, |
| 687 | + Args&&... args) { |
802 | 688 | using namespace detail;
|
803 |
| - return deserialize<JsonDeserializer>(doc, input, inputSize, nestingLimit, |
804 |
| - filter); |
| 689 | + return deserialize<JsonDeserializer>(doc, input, |
| 690 | + detail::forward<Args>(args)...); |
805 | 691 | }
|
806 | 692 |
|
807 | 693 | ARDUINOJSON_END_PUBLIC_NAMESPACE
|
0 commit comments