未处理的异常:类型 '(dynamic) => Time' 不是类型 '(String, dynamic) => MapEntry<dynamic, dynamic>'



未处理的异常:type'(dynamic(=>时间"不是类型"的子类型(字符串,动态(=>MapEntry<动态,动态>'"转换">

import 'package:wordle/core/data/time.dart';
import 'package:dio/dio.dart';
Future<Time?> getTime() async {
var time;
try {
var response = await Dio().get(
'https://www.timeapi.io/api/Time/current/zone?timeZone=Europe/Istanbul');
if (response.statusCode == 200) {
print(response.data.toString());
//(Map<String, dynamic>)
time = (response.data).map((e)  => Time.fromMap(e));
print("data");
print(time.minute);
print(time.day);
return time;
} else {
throw Exception("Veri gönderilmedi ${response.statusCode}");
}
} on DioError catch (e) {
return Future.error(e.message);
}
}

时间级

factory Time.fromMap(Map<String, dynamic> json) => Time(
year: json["year"],
month: json["month"],
day: json["day"],
hour: json["hour"],
minute: json["minute"],
seconds: json["seconds"],
milliSeconds: json["milliSeconds"],
dateTime: DateTime.parse(json["dateTime"]),
date: json["date"],
time: json["time"],
timeZone: json["timeZone"],
dayOfWeek: json["dayOfWeek"],
dstActive: json["dstActive"],
);

数据={"年份":2022年,"月份":3."天":5."小时":18,"分钟":23,"秒":27,"毫秒":765中,"dateTime":"2022-03-05T18:23:27.7658753";,"日期":"2022年5月3日";,"时间":"18:23";,"时区":"欧洲/伊斯坦布尔";,"dayOfWeek":"星期六";,"dstActive":虚假的}

dio将解析对json对象的响应,因此您只需要

time = Time.fromMap(response.data);

相关内容

最新更新