JsonArray.hpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright Benoit Blanchon 2014
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #pragma once
  7. #include "JsonContainer.hpp"
  8. #include "JsonIterator.hpp"
  9. namespace ArduinoJson {
  10. class JsonArray : public JsonContainer {
  11. public:
  12. typedef JsonIterator<JsonValue> iterator;
  13. typedef JsonConstIterator<JsonValue> const_iterator;
  14. JsonArray() {}
  15. explicit JsonArray(Internals::JsonNode *node)
  16. : JsonContainer(node) {} // TODO: hide
  17. JsonValue operator[](int index) const;
  18. void add(bool value);
  19. void add(const char *value);
  20. void add(double value, int decimals = 2);
  21. void add(int value) { add(static_cast<long>(value)); }
  22. void add(long value);
  23. void add(JsonContainer nestedArray); // TODO: should allow JsonValue too
  24. JsonArray createNestedArray();
  25. JsonObject createNestedObject();
  26. bool success() { return _node && _node->isArray(); }
  27. iterator begin() { return iterator(firstChild()); }
  28. iterator end() { return iterator(0); }
  29. const_iterator begin() const { return const_iterator(firstChild()); }
  30. const_iterator end() const { return const_iterator(0); }
  31. };
  32. }