NextTrain.fromJson constructor
Creates a new NextTrain instance from a JSON object.
Implementation
factory NextTrain.fromJson(Map<String, dynamic> json) {
final String? numCarsStr = json[ApiFields.car];
final int? numCars = numCarsStr == null ? null : int.tryParse(numCarsStr);
final String lineRaw = json[ApiFields.line] ?? '';
final String line = lineRaw == 'No' ? '' : lineRaw;
final String minutesAwayStr = json[ApiFields.min] ?? '';
final int? minutesAway = int.tryParse(minutesAwayStr);
late final TrainStatus? specialStatus;
if (minutesAwayStr == "ARR" || minutesAwayStr == "BRD") {
specialStatus = TrainStatus.fromString(minutesAwayStr);
} else {
specialStatus = null;
}
return NextTrain(
locationCode: json[ApiFields.locationCode] ?? '',
locationName: json[ApiFields.locationName] ?? '',
numCars: numCars,
destination: json[ApiFields.destination] ?? '',
destinationCode: json[ApiFields.destinationCode],
destinationName: json[ApiFields.destinationName],
group: int.parse(json[ApiFields.group] ?? "-1"),
line: line,
minutesAway: minutesAway,
specialStatus: specialStatus,
);
}