writeData method
Implementation
void writeData(int indent, Map<String, dynamic> data) {
data.forEach((key, value) {
if (value is String) {
writeAsString(indent, key, value);
} else if (value is List) {
if ((value).isNotEmpty) {
writeName(indent, key);
for (var index = 0; index < value.length; index++) {
var item = (value)[index];
writeArrayItem(indent + 1, item);
}
}
} else if (value is Map) {
var values = List.from(value.values);
if (values.indexWhere((dynamic item) {
return item != null;
}) >=
0) {
writeName(indent, key);
writeData(indent + 1, (value as Map<String, dynamic>));
}
} else {
writeAsObject(indent, key, value);
}
});
}