Datacat.fromJsonString constructor
Datacat.fromJsonString(
- String jsonString
Creates a Datacat from a JSON string representing a list of objects.
Implementation
factory Datacat.fromJsonString(String jsonString) {
final decoded = json.decode(jsonString);
if (decoded is! List) {
throw ArgumentError('JSON input must be a list of objects.');
}
if (decoded.isEmpty) {
return Datacat(columns: [], rows: []);
}
final allKeys = <String>{};
for (final item in decoded) {
if (item is Map) {
allKeys.addAll(item.keys.map((k) => k.toString()));
}
}
final colList = allKeys.toList();
final rowList = <List<dynamic>>[];
for (final item in decoded) {
if (item is Map) {
final row = colList.map((col) => item[col]).toList();
rowList.add(row);
}
}
return Datacat(columns: colList, rows: rowList);
}