Как упомянул @Alex Sunder Singh в комментариях и в одном из ответов на этот пост сообщества , вы можете использовать JsonSerializable () , чтобы сделать это.
Чтобы использовать его, вы должны установить эти зависимости на вашем pubspe c .yaml
dependencies:
# Your other regular dependencies here
json_annotation: <latest_version>
dev_dependencies:
# Your other dev_dependencies here
build_runner: <latest_version>
json_serializable: <latest_version>
Затем добавьте аннотацию @JsonSerializable()
в свой класс и импортируйте пакет для вашего класса, это будет выглядеть примерно так
import 'package:json_annotation/json_annotation.dart';
@JsonSerializable()
class RideModel {
final String docId;
final bool hasRequest;
final String rideCollectionId;
final String vehicleTypeId;
final double corporationRate;
final double driverRate;
final double driverInsurance;
final double passengerInsurance;
final List startUpCharge;
final double waitingCharge;
final double normalCharge;
RideModel(this.docId, this.hasRequest, this.rideCollectionId,this.vehicleTypeId, this.corporationRate, this.driverRate, this.driverInsurance, this.passengerInsurance, this.startUpCharge, this.waitingCharge, this.normalCharge);
factory RideModel.fromJson(Map<String, dynamic> json) => _$RideModelFromJson(json);
Map<String, dynamic> toJson() => _$RideModelToJson(this);
}
ПРИМЕЧАНИЕ: используйте @JsonSerializable(explicitToJson: true)
, если вы хотите, чтобы все ваши не примитивные объекты были описаны как json, а не как «Экземпляр объекта» '
Наконец, сгенерируйте код сериализации JSON, запустив утилиту генерации кода с вашего терминала
flutter packages pub run build_runner build
С этим вы сможете использовать toJson()
для отображения данных на вас объект и fromJson()
для отправки вашего объекта в качестве данных.
Надеюсь, это поможет.