JsonArray.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Arduino JSON library
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #pragma once
  6. template<int N>
  7. class JsonArray
  8. {
  9. public:
  10. JsonArray()
  11. {
  12. itemCount = 0;
  13. }
  14. void add(const char* data)
  15. {
  16. if (itemCount < N)
  17. items[itemCount++] = data;
  18. }
  19. void writeTo(char* buffer, size_t bufferSize)
  20. {
  21. buffer[0] = 0;
  22. append("[", buffer, bufferSize);
  23. for (int i = 0; i < itemCount; i++)
  24. {
  25. if (i>0)
  26. append(",", buffer, bufferSize);
  27. append("'", buffer, bufferSize);
  28. append(items[i], buffer, bufferSize);
  29. append("'", buffer, bufferSize);
  30. }
  31. append("]", buffer, bufferSize);
  32. }
  33. private:
  34. const char* items[N];
  35. int itemCount;
  36. void append(const char* source, char* dest, size_t destSize)
  37. {
  38. int len = strlen(dest);
  39. strncpy(dest + len, source, destSize - len);
  40. }
  41. };