JsonObject.hpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright Benoit Blanchon 2014
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #pragma once
  7. #include "Internals/JsonObjectConstIterator.hpp"
  8. #include "Internals/JsonObjectIterator.hpp"
  9. #include "JsonContainer.hpp"
  10. #include "Internals/JsonObjectNode.hpp"
  11. namespace ArduinoJson {
  12. class JsonObject : public JsonContainer {
  13. public:
  14. typedef JsonPair value_type;
  15. typedef Internals::JsonObjectIterator iterator;
  16. typedef Internals::JsonObjectConstIterator const_iterator;
  17. JsonObject(JsonBuffer *buffer) : _buffer(buffer) {}
  18. JsonValue operator[](const char *key);
  19. void remove(const char *key);
  20. JsonArray createNestedArray(const char *key);
  21. JsonObject createNestedObject(const char *key);
  22. iterator begin() { return iterator(_firstChild); }
  23. iterator end() { return iterator(0); }
  24. const_iterator begin() const { return const_iterator(_firstChild); }
  25. const_iterator end() const { return const_iterator(0); }
  26. private:
  27. Internals::JsonNode *getPairAt(const char *key);
  28. Internals::JsonNode *getOrCreateValueAt(const char *key);
  29. JsonBuffer *_buffer;
  30. Internals::JsonObjectNode *_firstChild;
  31. };
  32. }