Как мне вернуть первые пять значений из дротика ответа JSON

#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, если это то, что вы хотели, пожалуйста, примите ответ