JsonWriter.h 854 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include "../Arduino/Print.h"
  3. class JsonWriter
  4. {
  5. public:
  6. explicit JsonWriter(Print& sink)
  7. : _sink(sink), _length(0)
  8. {
  9. }
  10. size_t bytesWritten()
  11. {
  12. return _length;
  13. }
  14. virtual void beginArray() = 0;
  15. virtual void endArray() = 0;
  16. virtual void beginObject() = 0;
  17. virtual void endObject() = 0;
  18. void writeString(const char* value);
  19. void writeInteger(long value);
  20. void writeBoolean(bool value);
  21. void writeDouble(double value, int decimals);
  22. virtual void writeColon() = 0;
  23. virtual void writeComma() = 0;
  24. void writeEmptyArray()
  25. {
  26. _length += _sink.print("[]");
  27. }
  28. void writeEmptyObject()
  29. {
  30. _length += _sink.print("{}");
  31. }
  32. protected:
  33. Print& _sink;
  34. size_t _length;
  35. };