Convert object
into UTF-8 encoded JSON.
Source
List<int> convert(Object object) {
List<List<int>> bytes = [];
// The `stringify` function always converts into chunks.
// Collect the chunks into the `bytes` list, then combine them afterwards.
void addChunk(Uint8List chunk, int start, int end) {
if (start > 0 || end < chunk.length) {
int length = end - start;
chunk = new Uint8List.view(chunk.buffer,
chunk.offsetInBytes + start,
length);
}
bytes.add(chunk);
}
_JsonUtf8Stringifier.stringify(object,
_indent,
_toEncodable,
_bufferSize,
addChunk);
if (bytes.length == 1) return bytes[0];
int length = 0;
for (int i = 0; i < bytes.length; i++) {
length += bytes[i].length;
}
Uint8List result = new Uint8List(length);
for (int i = 0, offset = 0; i < bytes.length; i++) {
var byteList = bytes[i];
int end = offset + byteList.length;
result.setRange(offset, end, byteList);
offset = end;
}
return result;
}