flutter Dart语言List如何获取索引值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flutter Dart语言List如何获取索引值相关的知识,希望对你有一定的参考价值。
参考技术A 其他语言像是js,提供的迭代器是可以直接获取element,index的,但是用dart的map()发现无法获取下标,实际上dart的迭代器只支持获取element自身,想要获得index,就需要借助asMap(),Dart提供的asMap()将列表转换为Map。Dart提供了List.generate方法获取index
如何在 Flutter 中获取 Future<List> 项的某个数据索引?
【中文标题】如何在 Flutter 中获取 Future<List> 项的某个数据索引?【英文标题】:How to take a certain data index of Future<List> item in Flutter? 【发布时间】:2022-01-14 22:01:32 【问题描述】:获取最新数据索引有问题
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"]
我希望这是如何使用第一个索引来获取最新数据,但我不知道代码会怎样。另外,如果有其他解决方案可以获取最新数据,请告诉我,非常感谢
【问题讨论】:
【参考方案1】:您可以使用数组索引号来获取数组中的第一个对象。
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
修改查询
【讨论】:
在 List使用索引从列表中获取特定值
userFromJson(jsonResp[0]); /// For first record
【讨论】:
在 List因为它的未来你必须使用 await 关键字来获得完整的结果,所以通过添加 await 来修改你的代码
users = await fetchUser();
现在您可以访问用户列表
var firstUser = users.first;
var firstUser = users[0];
更多 await 和 async 你可以阅读这个Asynchronous programming
【讨论】:
is "users.first" 表示对象名称 "users" 的名为 "user" 的类中名为 "first" 的属性? 没有它的 List users[0] 属性和 users.first 给出相同的结果 api.dart.dev/stable/2.15.0/dart-core/List/first.html 如果我打印第一个用户,它重视“用户”的实例 您的数据是一个 ListfirstUser.idUser
和 firstUser.name
和 firstUser.phone
以上是关于flutter Dart语言List如何获取索引值的主要内容,如果未能解决你的问题,请参考以下文章
如何获取某些值的值作为类型<String>,它位于 Dart/Flutter 中 List 内的 Map 内?
如何在 Dart/Flutter 中获取当前时间的 GMT 时间偏移值