如何在Flutter中取Future<List>item的某个数据索引?
How to take a certain data index of Future<List> item in Flutter?
我在获取最新数据索引时遇到问题
class User {
final String idUser,
name,
phone;
User(
{this.idUser,
this.name,
this.phone});
factory User.fromJson(Map<String, dynamic> json) {
return User(
idUser: json['_id'],
name: json['name'],
phone: json['phone']);
}
}
List<User> userFromJson(jsonData) {
List<User> result =
List<User>.from(jsonData.map((item) => User.fromJson(item)));
return result;
}
// index
Future<List<User>> fetchUser() async {
String route = AppConfig.API_ENDPOINT + "userdata";
final response = await http.get(route);
if (response.statusCode == 200) {
var jsonResp = json.decode(response.body);
return userFromJson(jsonResp);
} else {
throw Exception('Failed load $route, status : ${response.statusCode}');
}
}
调用方法是这样的
user = fetchUser();
“response.body”的值是这样的
[{"_id":"4136425eb8d9320f4822c554","name":"John","phone":"90643755394"},{"_id":"62766b2eb45s3w0g4662ftd3","name":"Anna","timestamp":"90345765791"}]
我希望是如何获取第一个索引来获取最新数据,但我不知道代码会怎样。另外,如果有其他解决方案可以获取最新数据,请告诉我,非常感谢
您可以使用数组索引号来获取数组中的第一个对象。
if (response.statusCode == 200) {
var jsonResp = json.decode(response.body);
return List<User>.from(jsonResp.map((user) => User.fromJson(user)));
} else {
throw Exception('Failed load $route, status : ${response.statusCode}');
}
如果你只想获得一个用户
if (response.statusCode == 200) {
var jsonResp = json.decode(response.body);
return User.fromJson(jsonResp[0]);
} else {
throw Exception('Failed load $route, status : ${response.statusCode}');
}
其他方法是使用 LIMIT 1
修改查询
使用索引从列表中获取特定值
userFromJson(jsonResp[0]); /// For first record
因为它的未来你必须使用 await 关键字来获得完成的结果所以通过添加 await
修改你的代码
users = await fetchUser();
现在您可以访问用户列表
var firstUser = users.first;
var firstUser = users[0];
有关 await 和 async 的更多信息,您可以阅读此 Asynchronous programming
我在获取最新数据索引时遇到问题
class User {
final String idUser,
name,
phone;
User(
{this.idUser,
this.name,
this.phone});
factory User.fromJson(Map<String, dynamic> json) {
return User(
idUser: json['_id'],
name: json['name'],
phone: json['phone']);
}
}
List<User> userFromJson(jsonData) {
List<User> result =
List<User>.from(jsonData.map((item) => User.fromJson(item)));
return result;
}
// index
Future<List<User>> fetchUser() async {
String route = AppConfig.API_ENDPOINT + "userdata";
final response = await http.get(route);
if (response.statusCode == 200) {
var jsonResp = json.decode(response.body);
return userFromJson(jsonResp);
} else {
throw Exception('Failed load $route, status : ${response.statusCode}');
}
}
调用方法是这样的
user = fetchUser();
“response.body”的值是这样的
[{"_id":"4136425eb8d9320f4822c554","name":"John","phone":"90643755394"},{"_id":"62766b2eb45s3w0g4662ftd3","name":"Anna","timestamp":"90345765791"}]
我希望是如何获取第一个索引来获取最新数据,但我不知道代码会怎样。另外,如果有其他解决方案可以获取最新数据,请告诉我,非常感谢
您可以使用数组索引号来获取数组中的第一个对象。
if (response.statusCode == 200) {
var jsonResp = json.decode(response.body);
return List<User>.from(jsonResp.map((user) => User.fromJson(user)));
} else {
throw Exception('Failed load $route, status : ${response.statusCode}');
}
如果你只想获得一个用户
if (response.statusCode == 200) {
var jsonResp = json.decode(response.body);
return User.fromJson(jsonResp[0]);
} else {
throw Exception('Failed load $route, status : ${response.statusCode}');
}
其他方法是使用 LIMIT 1
使用索引从列表中获取特定值
userFromJson(jsonResp[0]); /// For first record
因为它的未来你必须使用 await 关键字来获得完成的结果所以通过添加 await
修改你的代码users = await fetchUser();
现在您可以访问用户列表
var firstUser = users.first;
var firstUser = users[0];
有关 await 和 async 的更多信息,您可以阅读此 Asynchronous programming