| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #pragma once
- #include "JsonWriter.h"
- #include "IndentedPrint.h"
- using namespace ArduinoJson::Generator;
- class PrettyJsonWriter : public JsonWriter
- {
- public:
- explicit PrettyJsonWriter(IndentedPrint* sink)
- : JsonWriter(sink), _indenter(sink)
- {
- }
- virtual void beginArray()
- {
- _length += _sink->write('[');
- indent();
- }
- virtual void endArray()
- {
- unindent();
- _length += _sink->write(']');
- }
- virtual void writeColon()
- {
- _length += _sink->print(": ");
- }
- virtual void writeComma()
- {
- _length += _sink->write(',');
- _length += _indenter->println();
- }
- virtual void beginObject()
- {
- _length += _sink->write('{');
- indent();
- }
- virtual void endObject()
- {
- unindent();
- _length += _sink->write('}');
- }
- private:
- IndentedPrint* _indenter;
- void indent()
- {
- _indenter->indent();
- _length += _indenter->println();
- }
- void unindent()
- {
- _length += _indenter->println();
- _indenter->unindent();
- }
- };
|