Я возвращаю объект json из почтового запроса и хочу проанализировать его в модели дротика. Я уже создал модель дротика и fromJson
функцию.
factory Did.fromJson(Map<String, dynamic> json) => Did(
id: json['id'] as String,
docHash: json['docHash'] as String,
pubKey: json['pubKey'] as String,
privKey: json['privKey'] as String,
credential:
Credential.fromJson(json['credential'] as Map<String, dynamic>),
message: json['message'] as String,
success: json['success'] as bool);
Это всего лишь отрывок из моей модели, но в той части, где я получил сообщение об ошибке The argument type 'dynamic' can't be assigned to the parameter type 'Map<String, dynamic>'
. Я пытаюсь разобрать ответ на объект дротика после создания почтового запроса в репозитории блока:
var res = await dio.post("http://did-backend.herokuapp.com/create",
data: {
"firstName": firstName.trim(),
"lastName": lastName.trim(),
"email": email.trim(),
"phoneNumber": phoneNumber.trim(),
"dateOfBirth": dateOfBirth?.toIso8601String(),
"sex": sex.trim(),
"address": address.trim(),
"city": city.trim(),
"state": state.trim(),
"postalCode": postalCode.trim(),
"country": country.trim()
},
options: Options(headers: {
Headers.contentTypeHeader: "application/json",
}));
if (res.statusCode == 200) {
final json = jsonDecode(res.data.toString());
print(Did.fromJson(json));
return Did.fromJson(json);
}
Декодированный объект json имеет тип dynamic, поэтому я не могу передать его в функцию Did.fromJson()
.
Как мне преобразовать ответ Dio, чтобы передать его в функцию fromJson
?
Изменить:
Это моя модель, которая включает функцию fromJSON Did .dart
Редактировать 2:
Ответ на почтовый запрос Dio, который еще не проанализирован: print(res)
{
"id": "GbLnu9eCQ2sVBiKngNxts6NJMprxRczc63CKaZsiJsGT",
"docHash": "PNSGTXSGODDBHRVWUTFIZUJT9UMPNM9MFBEMCQBYSIRQTDKXPVUCSPNBCXVNGIFEMWSBRUBYARZDA9999",
"pubKey": "38aqV9FLAn9bXSPm388LcTronqZabEzpWKQpBZRcpPwP",
"privKey": "A7cq3Z3eCN573wL4QDPR2UjwnDMML6deTf499RnN64zE",
"credential": {
"@context": "https://www.w3.org/2018/credentials/v1",
"id": "http://example.edu/credentials/3732",
"type": ["VerifiableCredential", "personalInformationCredential"],
"credentialSubject": {
"id": "did:iota:GbLnu9eCQ2sVBiKngNxts6NJMprxRczc63CKaZsiJsGT",
"address": {
"street": "awdwada",
"city": "wdwad",
"state": "awdad",
"postalCode": "awdwad",
"country": "wadawd"
},
"dateOfBirth": "2021-04-24T00:00:00.000",
"email": "[email protected]",
"name": { "first": "wadawd", "last": "awdawd" },
"phoneNumber": "awdad",
"sex": "male"
},
"issuer": "did:iota:A5STNhet1zgGbbnZCqniokcAdXbZZ2xcE6QWruQmctEs",
"issuanceDate": "2021-04-24T15:02:41Z",
"proof": {
"type": "MerkleKeySignature2021",
"verificationMethod": "#key-collection",
"signatureValue": "3RypuceLDTQt1Anb9WdBj7ayPS91EdiYJ6ELPMChgocm.1117tuDcgbUJddXaLoFqvAh8WWeypGnCTuPCDggJ2cMk6AVyJAjHaaCgSmgaKsGa299TxVBqfypgqbjQx1gExf2kkD9XU8ViYhZRVm9dx5qELnVxcM2H5R5YmL6rLn3RR6SbiNSc7XG.22rTApWSHuzuZNFtN75KcsEVqhgzDG3WGoAxs2itVdy99DkKRSVkbCyhJgd1pgAQPPpnt65Sh3m733PsnY6QFojF"
}
},
"message": "You have successfully created your digital identity, wadawd",
"success": true
}