diff --git a/src/ArduinoJson/JsonObject.hpp b/src/ArduinoJson/JsonObject.hpp index d2edb0a4..39dfe6f3 100644 --- a/src/ArduinoJson/JsonObject.hpp +++ b/src/ArduinoJson/JsonObject.hpp @@ -43,14 +43,14 @@ class JsonObject { // TKey = const std::string&, const String& template FORCE_INLINE bool containsKey(const TString& key) const { - return containsKey_impl(key); + return containsKey_impl(makeString(key)); } // // bool containsKey(TKey); // TKey = char*, const char*, char[], const char[], const FlashStringHelper* template FORCE_INLINE bool containsKey(TString* key) const { - return containsKey_impl(key); + return containsKey_impl(makeString(key)); } bool copyFrom(JsonObject src) { @@ -87,14 +87,14 @@ class JsonObject { template FORCE_INLINE JsonObject createNestedObject(const TString& key) { if (!_data) return JsonObject(); - return createNestedObject_impl(key); + return createNestedObject_impl(makeString(key)); } // // JsonObject createNestedObject(TKey); // TKey = char*, const char*, char[], const char[], const FlashStringHelper* template FORCE_INLINE JsonObject createNestedObject(TString* key) { - return createNestedObject_impl(key); + return createNestedObject_impl(makeString(key)); } // Gets the value associated with the specified key. @@ -127,7 +127,7 @@ class JsonObject { // std::string, String, JsonArray, JsonObject template FORCE_INLINE bool is(const TString& key) const { - return is_impl(key); + return is_impl(makeString(key)); } // // bool is(TKey) const; @@ -136,7 +136,7 @@ class JsonObject { // std::string, String, JsonArray, JsonObject template FORCE_INLINE bool is(TString* key) const { - return is_impl(key); + return is_impl(makeString(key)); } // Gets or sets the value associated with the specified key. @@ -288,7 +288,7 @@ class JsonObject { private: template FORCE_INLINE bool containsKey_impl(TStringRef key) const { - return findSlot(makeString(key)) != 0; + return findSlot(key) != 0; } template @@ -321,9 +321,9 @@ class JsonObject { : TValue(); } - template + template FORCE_INLINE bool is_impl(TStringRef key) const { - Slot* slot = findSlot(makeString(key)); + Slot* slot = findSlot(key); return slot ? JsonVariant(_memoryPool, &slot->value).is() : false; } diff --git a/src/ArduinoJson/JsonObjectImpl.hpp b/src/ArduinoJson/JsonObjectImpl.hpp index 61e4fd3f..2b2a3c6a 100644 --- a/src/ArduinoJson/JsonObjectImpl.hpp +++ b/src/ArduinoJson/JsonObjectImpl.hpp @@ -11,23 +11,21 @@ namespace ARDUINOJSON_NAMESPACE { template inline JsonArray JsonObject::createNestedArray(const TString& key) { - return createNestedArray_impl(key); + return createNestedArray_impl(makeString(key)); } template inline JsonArray JsonObject::createNestedArray(TString* key) { - return createNestedArray_impl(key); + return createNestedArray_impl(makeString(key)); } template inline JsonArray JsonObject::createNestedArray_impl(TStringRef key) { - if (!_data) return JsonArray(); - return set(key).template to(); + return set_impl(key).template to(); } template inline JsonObject JsonObject::createNestedObject_impl(TStringRef key) { - if (!_data) return JsonObject(); - return set(key).template to(); + return set_impl(key).template to(); } } // namespace ARDUINOJSON_NAMESPACE