#flutter #dart
Вопрос:
Я хотел бы вернуть первые пять значений имени из приведенного выше ответа JSON
Future <List<UserModel>> fetchData() async {
final response =
await http.get(Uri.parse(URLCONST.API_URL));
if (response.statusCode == 200) {
List jsonResponse = json.decode(response.body);
return jsonResponse.map((user) => new UserModel.fromJson(user)).toList();
} else {
throw Exception('Unexpected error occured!');
}
}
Вот модель ниже.
class UserModel {
int id;
String name;
UserModel({
required this.id,
required this.name,
});
factory UserModel.fromJson(Map<String, dynamic> json) {
return UserModel(
id: json['id'],
name: json['name'],
);
}
}
API имеет несколько значений в списке, и я хотел бы вернуть только первые 5
Ответ №1:
если я правильно понял, вы можете сделать что-то вроде этого:
jsonResponse.map((user) => new UserModel
.fromJson(user))
// this will take only the first five elements of the iterable
.take(5)
// this will map each user to its corresponding name
.map((user) => user.name)
// this, as you already know, will convert the iterable to a list
.toList();
это вернет значение a List<String>
, содержащее первые пять имен
Комментарии:
1. Ты потрясающая.
2. спасибо :D, если это то, что вы хотели, пожалуйста, примите ответ