forked from bblanchon/ArduinoJson
Simplified JsonWriter and PrettyJsonWriter
This commit is contained in:
@ -27,23 +27,26 @@ class JsonWriter {
|
|||||||
// number of bytes written.
|
// number of bytes written.
|
||||||
size_t bytesWritten() { return _length; }
|
size_t bytesWritten() { return _length; }
|
||||||
|
|
||||||
void beginArray() { _length += _sink->write('['); }
|
void beginArray() { write('['); }
|
||||||
void endArray() { _length += _sink->write(']'); }
|
void endArray() { write(']'); }
|
||||||
void writeEmptyArray() { _length += _sink->print("[]"); }
|
void writeEmptyArray() { write("[]"); }
|
||||||
|
|
||||||
void beginObject() { _length += _sink->write('{'); }
|
void beginObject() { write('{'); }
|
||||||
void endObject() { _length += _sink->write('}'); }
|
void endObject() { write('}'); }
|
||||||
void writeEmptyObject() { _length += _sink->print("{}"); }
|
void writeEmptyObject() { write("{}"); }
|
||||||
|
|
||||||
void writeString(const char *value);
|
void writeString(const char *value);
|
||||||
void writeInteger(long value);
|
void writeInteger(long value);
|
||||||
void writeBoolean(bool value);
|
void writeBoolean(bool value);
|
||||||
void writeDouble(double value, uint8_t decimals);
|
void writeDouble(double value, uint8_t decimals);
|
||||||
|
|
||||||
void writeColon() { _length += _sink->write(':'); }
|
void writeColon() { write(':'); }
|
||||||
void writeComma() { _length += _sink->write(','); }
|
void writeComma() { write(','); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void write(char c) { _length += _sink->write(c); }
|
||||||
|
void write(const char *s) { _length += _sink->print(s); }
|
||||||
|
|
||||||
Print *_sink;
|
Print *_sink;
|
||||||
size_t _length;
|
size_t _length;
|
||||||
};
|
};
|
||||||
|
@ -18,44 +18,46 @@ class PrettyJsonWriter : public JsonWriter {
|
|||||||
: JsonWriter(sink), _indenter(sink) {}
|
: JsonWriter(sink), _indenter(sink) {}
|
||||||
|
|
||||||
void beginArray() {
|
void beginArray() {
|
||||||
_length += _sink->write('[');
|
JsonWriter::beginArray();
|
||||||
indent();
|
indent();
|
||||||
}
|
}
|
||||||
|
|
||||||
void endArray() {
|
void endArray() {
|
||||||
unindent();
|
unindent();
|
||||||
_length += _sink->write(']');
|
JsonWriter::endArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
void writeColon() { _length += _sink->print(": "); }
|
void writeColon() { write(": "); }
|
||||||
|
|
||||||
void writeComma() {
|
void writeComma() {
|
||||||
_length += _sink->write(',');
|
JsonWriter::writeComma();
|
||||||
_length += _indenter->println();
|
newline();
|
||||||
}
|
}
|
||||||
|
|
||||||
void beginObject() {
|
void beginObject() {
|
||||||
_length += _sink->write('{');
|
JsonWriter::beginObject();
|
||||||
indent();
|
indent();
|
||||||
}
|
}
|
||||||
|
|
||||||
void endObject() {
|
void endObject() {
|
||||||
unindent();
|
unindent();
|
||||||
_length += _sink->write('}');
|
JsonWriter::endObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IndentedPrint *_indenter;
|
|
||||||
|
|
||||||
void indent() {
|
void indent() {
|
||||||
_indenter->indent();
|
_indenter->indent();
|
||||||
_length += _indenter->println();
|
newline();
|
||||||
}
|
}
|
||||||
|
|
||||||
void unindent() {
|
void unindent() {
|
||||||
_length += _indenter->println();
|
newline();
|
||||||
_indenter->unindent();
|
_indenter->unindent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void newline() { _length += _indenter->println(); }
|
||||||
|
|
||||||
|
IndentedPrint *_indenter;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user