parseList<T> static method

List<T> parseList<T>({
  1. required String modelName,
  2. required List jsonList,
  3. required T fromJson(
    1. Map<String, dynamic>
    ),
})

Parses a list of JSON objects into a list of models.

Invalid items are skipped while valid ones are added to the returned list.

Implementation

static List<T> parseList<T>({
  required String modelName,
  required List<dynamic> jsonList,
  required T Function(Map<String, dynamic>) fromJson,
}) {
  List<T> result = [];

  for (var i = 0; i < jsonList.length; i++) {
    final item = jsonList[i];

    try {
      final model = fromJson(item);
      result.add(model);
    } catch (e) {
      print("⚠ JSON Parsing Error");
      print("Model: $modelName");
      print("Index: $i");
      print("Error: $e");
      print("Item: $item");
    }
  }

  return result;
}