用户界面:
Row(
children: <Widget>[
ElevatedButton(
onPressed: firstAPI,
child: const Text("Call First"),
),
ElevatedButton(
onPressed: secondAPI,
child: const Text("Call Second API"),
),
],
),
),
第一个API调用(一个响应):
Future<void> firstAPI() async {
const String path = "https://www.jsonkeeper.com/b/99ID"; // hosted One res
final Response<dynamic> res = await Dio().get(path);
final FirstModel firstModel = FirstModel.fromJson(res.data);
log("firstAPI(): ${firstModel.toJson()}");
return Future<void>.value();
}
第二次接口调用(其他响应):
Future<void> secondAPI() async {
const String path = "https://www.jsonkeeper.com/b/49KW"; // hosted Other res
final Response<dynamic> res = await Dio().get(path);
final SecondModel secondModel = SecondModel.fromJson(res.data);
log("secondAPI(): ${secondModel.toJson()}");
return Future<void>.value();
}
First_mod.dart:
class FirstModel {
FirstModel({this.count, this.loginType, this.success, this.type, this.data});
FirstModel.fromJson(Map<String, dynamic> json) {
count = json["count"];
loginType = json["login_type"];
success = json["success"];
type = json["type"];
data = json["data"] != null ? Data.fromJson(json["data"]) : null;
}
int? count;
String? loginType;
bool? success;
String? type;
Data? data;
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data["count"] = count;
data["login_type"] = loginType;
data["success"] = success;
data["type"] = type;
if (this.data != null) {
data["data"] = this.data!.toJson();
}
return data;
}
}
class Data {
Data({
this.tokenType,
this.expiresIn,
this.accessToken,
this.refreshToken,
this.userId,
});
Data.fromJson(Map<String, dynamic> json) {
tokenType = json["token_type"];
expiresIn = json["expires_in"];
accessToken = json["access_token"];
refreshToken = json["refresh_token"];
userId = json["userId"];
}
String? tokenType;
int? expiresIn;
String? accessToken;
String? refreshToken;
int? userId;
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data["token_type"] = tokenType;
data["expires_in"] = expiresIn;
data["access_token"] = accessToken;
data["refresh_token"] = refreshToken;
data["userId"] = userId;
return data;
}
}
加入时间:清华2007年01月25日下午3:33
class SecondModel {
SecondModel({this.count, this.type, this.data});
SecondModel.fromJson(Map<String, dynamic> json) {
count = json["count"];
type = json["type"];
data = json["data"] != null ? Data.fromJson(json["data"]) : null;
}
int? count;
String? type;
Data? data;
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data["count"] = count;
data["type"] = type;
if (this.data != null) {
data["data"] = this.data!.toJson();
}
return data;
}
}
class Data {
Data({this.success, this.otpEnabled, this.message, this.timestamp, this.otp});
Data.fromJson(Map<String, dynamic> json) {
success = json["success"];
otpEnabled = json["otpEnabled"];
message = json["message"];
timestamp = json["timestamp"];
otp = json["otp"];
}
bool? success;
bool? otpEnabled;
String? message;
String? timestamp;
int? otp;
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data["success"] = success;
data["otpEnabled"] = otpEnabled;
data["message"] = message;
data["timestamp"] = timestamp;
data["otp"] = otp;
return data;
}
}
输出: