Creates a JSON encoder that creates multi-line JSON.
The encoding of elements of lists and maps are indented and put on separate
indent string is prepended to these elements, once for each
level of indentation.
null, the output is encoded as a single line.
The JSON encoder handles numbers, strings, booleans, null, lists and maps with string keys directly.
Any other object is attempted converted by
toEncodable to an
object that is of one of the convertible types.
toEncodable is omitted, it defaults to calling
const JsonEncoder.withIndent(this.indent, [toEncodable(object)]) : this._toEncodable = toEncodable;