【发布时间】:2020-07-26 05:31:17
【问题描述】:
我使用Freezed 包来生成我的课程。我有类并生成 toJson 和 fromJson ,我在从 API 到 Object 生成 json 时遇到问题。我从 API 中返回 json 是这样的:
{
"status": "ok",
"message": "Data utang sebagai pembertang ",
"data": [
{
"id_utang": "124",
"pembertang": {
"id_user": "111395227810958186033",
"name_user": "Zeffry Reynando",
"email_user": "zeffry.reynando@gmail.com",
"image_user": "https://lh3.googleusercontent.com/a-/AOh14GiIqxTHoBba1eooOh9TmsBkVFb9GQzz3zByx8IIKA=s96-c",
"token_fcm": "dk5s7T9ARrmSVHl1e4T1zc:APA91bFUEyOcwjLCZEuW525bxn9forOPVxvc2IGlc2fD90rf0znghnuGtJWuWnaGIs_1Zw8xBfuJ5B5ggj1zut4fenzJHqD7PgCrHbiHBu0vFqcyVZw9zHfiYDN9kBSUj2ekouIu99Su",
"created_date": "2020-07-26 12:04:33"
},
"pengutang": {
"id_user": "105164526876912904397",
"name_user": "Akun Testing",
"email_user": "akun.testing4444@gmail.com",
"image_user": "https://lh5.googleusercontent.com/-p46wtaUFEQA/AAAAAAAAAAI/AAAAAAAAAAA/AMZuucn5itDrBrYoZfLoCRfqHzkLo-FgIA/s96-c/photo.jpg",
"token_fcm": "eqzBVVRAQOqRBKdyi_oQHk:APA91bHOXO0DKTkDVplUte_-itvcPNohcpRCIYFmgSgGn6o9xobk6kkoiibIWP_v5uFYe7EXHyH0NAJvzQIB9XSViQGYn7OIGgW26hzAY4-H3jhbCyB0t9bCNx2WzYF9nT5vFiYutBfb",
"created_date": "2020-07-25 14:10:46"
},
"total_utang": "150000",
"sisa_utang": "150000",
"tgl_kembali": "2020-10-10 00:00:00",
"status": "1",
"keterangan": "kepo lu",
"selfie": "3ed425415636e023107b27b4f2d33844.jpg",
"ttd": "askdj ksajd lasjdlksajd jsadkjsakd",
"created_date": "2020-07-26 09:25:56"
},
]
}
但是当我使用 final listUtang = list.map((e) => UtangModel.fromJson(e)).toList(); 生成该 json 时。我已经返回 null 了。
List After Compiled UtangModel(idUtang: null, pembertang: UserGoogleModel(idUser: null, nameUser: null, emailUser: null, imageUser: null, tokenFcm: null, createdDate: null), pengutang: UserGoogleModel(idUser: null, nameUser: null, emailUser: null, imageUser: null, tokenFcm: null, createdDate: null), totalUtang: null, sisaUtang: null, tglKembali: null, status: 1, keterangan: kepo lu, selfie: 3ed425415636e023107b27b4f2d33844.jpg, ttd: askdj ksajd lasjdlksajd jsadkjsakd, createdDate: null)
在上面的结果 json 中,它肯定有数据,但是在使用 fromJson 生成它之后它返回 null。我错过了什么?
UtangModel
@freezed
abstract class UtangModel with _$UtangModel {
const factory UtangModel(
{String idUtang,
UserGoogleModel pembertang,
UserGoogleModel pengutang,
String totalUtang,
String sisaUtang,
DateTime tglKembali,
String status,
String keterangan,
String selfie,
String ttd,
DateTime createdDate}) = _UtangModel;
factory UtangModel.fromJson(Map<String, dynamic> json) => _$UtangModelFromJson(json);
}
用户模型
@freezed
abstract class UserGoogleModel with _$UserGoogleModel {
const factory UserGoogleModel(
{String idUser,
String nameUser,
String emailUser,
String imageUser,
String tokenFcm,
DateTime createdDate}) = _UserGoogleModel;
factory UserGoogleModel.fromJson(Map<String, dynamic> json) => _$UserGoogleModelFromJson(json);
}
Pubspec.yaml
dependencies:
flutter:
sdk: flutter
freezed_annotation: ^0.11.0
json_annotation: ^3.0.1
dev_dependencies:
flutter_test:
sdk: flutter
pedantic: ^1.9.0
flutter_launcher_icons: ^0.7.5
build_runner: ^1.10.0
freezed: ^0.11.4
json_serializable: ^3.3.0
【问题讨论】: