diff --git a/CHANGELOG.md b/CHANGELOG.md index 37e78caa..cd676a22 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ HEAD * `JsonDocument` now support the same operations as `JsonVariant`. Calling `JsonDocument::as()` is not required anymore. * Fixed example `JsonHttpClient.ino` +* User can now use a `JsonString` as a key or a value > ### BREAKING CHANGES > diff --git a/src/ArduinoJson/Collection/CollectionData.hpp b/src/ArduinoJson/Collection/CollectionData.hpp index 0b29647b..34bc4f67 100644 --- a/src/ArduinoJson/Collection/CollectionData.hpp +++ b/src/ArduinoJson/Collection/CollectionData.hpp @@ -24,13 +24,13 @@ class CollectionData { VariantData *add(MemoryPool *pool); - template - VariantData *add(TKey key, MemoryPool *pool); + template + VariantData *add(TAdaptedString key, MemoryPool *pool); void clear(); - template - bool containsKey(const TKey &key) const; + template + bool containsKey(const TAdaptedString &key) const; bool copyFrom(const CollectionData &src, MemoryPool *pool); @@ -39,8 +39,8 @@ class CollectionData { VariantData *get(size_t index) const; - template - VariantData *get(TKey key) const; + template + VariantData *get(TAdaptedString key) const; VariantSlot *head() const { return _head; @@ -48,8 +48,8 @@ class CollectionData { void remove(size_t index); - template - void remove(TKey key) { + template + void remove(TAdaptedString key) { remove(getSlot(key)); } @@ -62,8 +62,8 @@ class CollectionData { private: VariantSlot *getSlot(size_t index) const; - template - VariantSlot *getSlot(TKey key) const; + template + VariantSlot *getSlot(TAdaptedString key) const; VariantSlot *getPreviousSlot(VariantSlot *) const; }; diff --git a/src/ArduinoJson/Collection/CollectionImpl.hpp b/src/ArduinoJson/Collection/CollectionImpl.hpp index 8b273379..d7a7e4d5 100644 --- a/src/ArduinoJson/Collection/CollectionImpl.hpp +++ b/src/ArduinoJson/Collection/CollectionImpl.hpp @@ -29,8 +29,8 @@ inline VariantData* CollectionData::add(MemoryPool* pool) { return addSlot(pool)->data(); } -template -inline VariantData* CollectionData::add(TKey key, MemoryPool* pool) { +template +inline VariantData* CollectionData::add(TAdaptedString key, MemoryPool* pool) { VariantSlot* slot = addSlot(pool); if (!slotSetKey(slot, key, pool)) return 0; return slot->data(); @@ -41,8 +41,8 @@ inline void CollectionData::clear() { _tail = 0; } -template -inline bool CollectionData::containsKey(const TKey& key) const { +template +inline bool CollectionData::containsKey(const TAdaptedString& key) const { return getSlot(key) != 0; } @@ -53,9 +53,9 @@ inline bool CollectionData::copyFrom(const CollectionData& src, VariantData* var; if (s->key() != 0) { if (s->ownsKey()) - var = add(RamStringWrapper(s->key()), pool); + var = add(RamStringAdapter(s->key()), pool); else - var = add(ConstRamStringWrapper(s->key()), pool); + var = add(ConstRamStringAdapter(s->key()), pool); } else { var = add(pool); } @@ -69,7 +69,7 @@ inline bool CollectionData::equalsObject(const CollectionData& other) const { size_t count = 0; for (VariantSlot* slot = _head; slot; slot = slot->next()) { VariantData* v1 = slot->data(); - VariantData* v2 = other.get(wrapString(slot->key())); + VariantData* v2 = other.get(adaptString(slot->key())); if (!variantEquals(v1, v2)) return false; count++; } @@ -88,8 +88,8 @@ inline bool CollectionData::equalsArray(const CollectionData& other) const { } } -template -inline VariantSlot* CollectionData::getSlot(TKey key) const { +template +inline VariantSlot* CollectionData::getSlot(TAdaptedString key) const { VariantSlot* slot = _head; while (slot) { if (key.equals(slot->key())) break; @@ -112,8 +112,8 @@ inline VariantSlot* CollectionData::getPreviousSlot(VariantSlot* target) const { return 0; } -template -inline VariantData* CollectionData::get(TKey key) const { +template +inline VariantData* CollectionData::get(TAdaptedString key) const { VariantSlot* slot = getSlot(key); return slot ? slot->data() : 0; } diff --git a/src/ArduinoJson/Deserialization/deserialize.hpp b/src/ArduinoJson/Deserialization/deserialize.hpp index c3a4fa69..5177edfb 100644 --- a/src/ArduinoJson/Deserialization/deserialize.hpp +++ b/src/ArduinoJson/Deserialization/deserialize.hpp @@ -23,8 +23,8 @@ TDeserializer makeDeserializer(MemoryPool &pool, return TDeserializer(pool, reader, writer, nestingLimit); } -// DeserializationError deserialize(JsonDocument& doc, TString input); -// TString = const std::string&, const String& +// deserialize(JsonDocument&, const std::string&); +// deserialize(JsonDocument&, const String&); template