parseJson static method

List<Map<String, dynamic>> parseJson(
  1. String content
)

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 [];
}