toJson method
ここでの toJson とは json へ encode 可能な形式へ変換するという意味で使われる.
つまり json string を返すというわけではない.
また serialize としても利用するため deserialize 可能でなければならない.
Implementation
@override
Map<String, dynamic> toJson() {
const lessThan = '<';
final type = runtimeType.toString();
late final String head;
final index = type.indexOf(lessThan);
if (index == -1) {
head = type;
} else {
head = type.substring(0, index);
}
final List<Object> list = List.generate(length, (index) {
final value = values.elementAt(index);
if (value is ToJsonSignature) return value.toJson();
return value;
});
return {
head: {
'values': list,
},
};
}