A JsonArray is the API for writing a JSON array, i.e. a sequence of elements. The
closing ] is written when the JsonArray instance goes out of scope, or when its end()
function is called.
A JsonObject is the API for writing a JSON object, i.e. a sequence of key/value pairs. The
closing } is written when the JsonObject instance goes out of scope, or when its end()
function is called.
A JsonReader wraps a sequence of bytes, aggregating them into a sequence of JSON tokens. It
is in essentially a tokenizer, adding some rudimentary convenience for JSON’s grammar.
JsonWriter is the starting point for serializing JSON with this library. It is a thin wrapper
around a [Write], adding some JSON specifics and also formatting.