Не удалось сгенерировать код fromJson для контакта
Я использую замороженные для создания моделей. Моя модель содержит A
Contact
из contacts_service и
bool
. Я следил за этим вопросом, но не могу найти способ решить сам. Я добавляю эти файлы.
Заранее спасибо.
класс модели
import 'dart:convert';
import 'package:contacts_service/contacts_service.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter/foundation.dart';
// import 'custom_converter.model.json.dart';
part 'contact_profile.model.freezed.dart';
part 'contact_profile.model.g.dart';
part 'custom_converter.model.json.dart';
@freezed
class ContactProfile with _$ContactProfile {
factory ContactProfile({
required Contact contact,
bool? isChecked,
}) = _ContactProfile;
factory ContactProfile.empty() => ContactProfile(
contact: Contact(),
isChecked: false,
);
factory ContactProfile.fromJson(Map<String, dynamic> json) =>
ContactProfileFromJson();
// static ContactProfile _customFromJson(Map<String, dynamic> json) {
// var jsonPayload = Map<String, dynamic>.from(json);
// if (jsonPayload["contact"] is Contact) {
// jsonPayload['contact'] = jsonDecode(jsonPayload["contact"]);
// }
// if (jsonPayload["isChecked"] is String) {
// jsonPayload["isChecked"] = jsonDecode(jsonPayload["isChecked"]);
// }
// return _$ContactProfileFromJson(jsonPayload);
// }
}
Пользовательский конвертер, который я пробовал
import 'dart:convert';
import 'package:contacts_service/contacts_service.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'contact_profile.model.dart';
part 'contact_profile.model.g.dart';
class ContactProfileFromJson
implements JsonConverter<ContactProfile, Map<String, dynamic>> {
@override
ContactProfile fromJson(Map<String, dynamic> json) {
var jsonPayload = Map<String, dynamic>.from(json);
if (jsonPayload["contact"] is Contact) {
jsonPayload['contact'] = jsonDecode(jsonPayload["contact"]);
}
if (jsonPayload["isChecked"] is String) {
jsonPayload["isChecked"] = jsonDecode(jsonPayload["isChecked"]);
}
return _$ContactProfileFromJson(jsonPayload);
// return ContactProfile(
// contact: Contact.fromMap(
// json["contact"],
// ),
// isChecked: json["isChecked"] ?? false,
// );
}
@override
Map<String, dynamic> toJson(ContactProfile contactProfile) => {};
}