Я запросил двоичный файл с сервера и хочу десериализовать данные из этого файла в объекты класса. Ниже мой код. Может ли кто-нибудь сказать мне, есть ли более элегантный и удобный способ сделать это, потому что у меня есть несколько разных объектов класса.
import 'dart:html';
import 'dart:typed_data';
class Header {
final ByteData magic = new ByteData(3);
int version;
int minorVersion;
...// Other data members.
}
void main() {
var path = 'url to a binary file';
var request = new HttpRequest();
request
..open('GET', path)
..responseType = 'arraybuffer'
..onLoadEnd.listen((e) => requestComplete(request))
..send();
}
void requestComplete(HttpRequest request) {
if (request.status == 200) {
print('headers: ${request.responseHeaders}');
print('type: ${request.responseType}');
ByteBuffer byteBuffer = request.response;
var magic = byteBuffer.asUint8List(0, 3);
print(new String.fromCharCodes(magic));
var data = byteBuffer.asInt32List(4, 8);
print(data);
...// Process other data
} else {
print('Request failed, status = ${request.status}');
}
}