JsonArray.h 988 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * Arduino JSON library
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #pragma once
  6. #include "JsonObjectBase.h"
  7. #include "StringBuilder.h"
  8. template<int N>
  9. class JsonArray : public JsonObjectBase
  10. {
  11. public:
  12. JsonArray()
  13. {
  14. itemCount = 0;
  15. }
  16. template<typename T>
  17. void add(T value)
  18. {
  19. add(JsonValue(value));
  20. }
  21. void add(JsonValue value)
  22. {
  23. if (itemCount >= N) return;
  24. items[itemCount] = value;
  25. itemCount++;
  26. }
  27. using JsonObjectBase::writeTo;
  28. private:
  29. JsonValue items[N];
  30. int itemCount;
  31. virtual size_t writeTo(Print& p) const
  32. {
  33. size_t n = 0;
  34. n += p.write("[");
  35. for (int i = 0; i < itemCount; i++)
  36. {
  37. if (i > 0)
  38. {
  39. n += p.write(",");
  40. }
  41. n += items[i].writeTo(p);
  42. }
  43. n += p.write("]");
  44. return n;
  45. }
  46. };