parseJson static method
Parses JSON string content into a list of typed maps: List<Map<String, dynamic>>.
Implementation
static List<Map<String, dynamic>> parseJson(String content) {
if (content.trim().isEmpty) return [];
String text = content;
if (text.startsWith('\uFEFF')) {
text = text.substring(1);
}
final dynamic decoded = jsonDecode(text.trim());
if (decoded is List) {
return decoded.map((item) {
if (item is Map) {
return Map<String, dynamic>.from(item);
}
return <String, dynamic>{'value': item};
}).toList();
}
if (decoded is Map) {
// Look for standard nested list properties (e.g. { "data": [...] }, { "items": [...] })
for (final key in ['data', 'items', 'rows', 'records', 'results', 'list', 'products', 'content']) {
if (decoded[key] is List) {
return (decoded[key] as List).map((item) {
if (item is Map) {
return Map<String, dynamic>.from(item);
}
return <String, dynamic>{'value': item};
}).toList();
}
}
// Single object wrapped in a map
return [Map<String, dynamic>.from(decoded)];
}
return [];
}