JsonVariant to create a minified JSON document.
If you want a pretty JSON with spaces and line breaks, use
size_t printTo(char* buffer, size_t size) const; size_t printTo(char buffer[size]) const; size_t printTo(Print &) const; size_t printTo(String &) const; size_t printTo(std::string &) const;
The destination where the JSON document should be written. It can be either:
size(the size includes the zero-terminator),
- an implementation of
This function treats
std::string as streams: it doesn’t replace the content, it appends to the end.
The number of bytes written.
How to view the JSON output?
When you pass a
JsonVariant::printTo(), it writes the JSON document to the stream but doesn’t print anything to the serial port, which makes troubleshooting difficult.
If you want to see what
JsonVariant::printTo() writes, use
WriteLoggingStream from the StreamUtils library.
When you pass a
JsonVariant::printTo(), it sends the bytes one by one, which can be slow depending on the target stream. For example, if you send to a
WiFiClient on an ESP8266, it will send a packet over the air for each byte, which is terribly slow and inefficient. To improve speed and efficiency, we must send fewer, larger packets.
To write the JSON document in chunks, you can use
WriteBufferingStream from the StreamUtils library.
StaticJsonBuffer<200> jsonBuffer; JsonObject& object = jsonBuffer.createObject(); object["hello"] = "world"; JsonVariant variant = object; variant.printTo(Serial);
will write the following string to the serial port: