#json #flutter #dart #jsonconvert
#json #flutter #dart #jsonconvert
Вопрос:
Я новичок в разработке flutter и пытаюсь преобразовать модель в строку json для передачи в вызов api.
когда я пытаюсь использовать RegistrationRequest.Функция toJSON Я получаю эту ошибку
type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'String'
Я предполагаю, что он не может правильно преобразовать список пользовательских изображений и не совсем уверен, как это сделать. Любая помощь будет высоко оценена
здесь я вызываю функцию
var serialisedBodycom = RegistrationRequest.toJson();
var serialisedBody = jsonEncode(serialisedBodycom);
у меня есть модель под названием
Запрос на регистрацию
import 'UserGender.dart';
import 'UserImage.dart';
class RegistrationRequest {
String email;
String password;
String msisdn;
UserGender gender;
UserGender matchGender;
List<UserImage> userImages;
RegistrationRequest(
{this.email,
this.password,
this.msisdn,
this.gender,
this.matchGender,
this.userImages});
RegistrationRequest.Empty();
RegistrationRequest.fromJson(Map<String, dynamic> json)
: email = json['email'],
password = json['password'],
msisdn = json['msisdn'],
gender = json['gender'],
matchGender = json['matchGender'],
userImages = json['userImages'];
Map<String, dynamic> toJson() {
return {
'email': email ?? '',
'password': password ?? '',
'MSISDN': msisdn ?? '',
'Gender': gender ?? UserGender.Unknown,
'MatchGender': matchGender ?? UserGender.Unknown,
'UserImages': userImages ?? new List<UserImage>()
};
}
}
который содержит список пользовательских изображений
class UserImage {
String base64;
String fileName;
bool isMainProfilePicture;
String contentType;
UserImage(
this.base64, this.fileName, this.isMainProfilePicture, this.contentType);
UserImage.Empty();
UserImage.fromJson(Map<dynamic, dynamic> json)
: base64 = json['base64'],
fileName = json['fileName'],
isMainProfilePicture = json['isMainProfilePicture'],
contentType = json['contentType'];
Map<dynamic, dynamic> toJson() => {
'base64': base64,
'fileName': fileName,
'isMainProfilePicture': isMainProfilePicture,
'contentType': contentType
};
}
Ответ №1:
окончательный ответ, который я придумал, заключается в следующем
RegistrationRequest.fromJson(Map<String, dynamic> json) => RegistrationRequest(
email: json["email"],
password: json["password"],
msisdn: json["msisdn"],
gender: json["gender"],
matchGender: json["matchGender"],
userImages: List<UserImage>.from(json["userImages"].map((x) => UserImage.fromJson(x))),
);
Map<String, dynamic> toJson() => {
"email": email,
"password": password,
"msisdn": msisdn,
"gender": gender,
"matchGender": matchGender,
"userImages": List<dynamic>.from(userImages.map((x) => x.toJson())),