#flutter #dart
#flutter #dart
Вопрос:
Итак, вот мой код.
Future<Album> fetchAlbum() async {
final response =
await http.get(Uri.https('jsonplaceholder.typicode.com', 'albums/1'));
if (response.statusCode == 200) {
// If the server did return a 200 OK response,
// then parse the JSON.
return Album.fromJson(jsonDecode(response.body));
//var data = jsonDecode(response.body);
} else {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception('Failed to load album');
}
}
class Album {
final int userId;
final int id;
final String title;
Album({@required this.userId, @required this.id, @required this.title});
factory Album.fromJson(Map<String, dynamic> json) {
return Album(
userId: json['userId'],
id: json['id'],
title: json['title'],
);
}
}
Я хочу получить значения альбомов (userId, id, title) и перенести их в массив, чтобы я мог немного посчитать…
Но я не знаю, как это сделать, мне удается отображать данные на экране с помощью метода Builder (), но не использовать их по отдельности.
Комментарии:
1. Не могли бы вы уточнить ???…. Вы просто хотите добавить ответ в список??
2. Да, массив или список будут работать…
Ответ №1:
это должно сработать!
Future<Album> fetchAlbum() async {
var response = await http.get('https;//jsonplaceholder.typicode.com' '/albums/1');
if (response.statusCode == 200) {
return Album data = Album.fromJson(json.decode(response.body));
} else {
throw Exception('Failed to load album');
}
}
Album AlbumFromJson(String str) => TrueOrFalse.fromJson(json.decode(str));
String AlbumToJson(TrueOrFalse data) => json.encode(data.toJson());
class Album {
final int userId;
final int id;
final String title;
Album({@required this.userId, @required this.id, @required this.title});
factory Album.fromJson(Map<String, dynamic> json) {
return Album(
userId: json['userId'],
id: json['id'],
title: json['title'],
);
}
Map<String, dynamic> toJson() => {
"userId": userId,
"id": id,
"title": title,
};
}
Комментарии:
1. как я могу получить доступ к значениям из другого класса?
Ответ №2:
Мне удается заставить его работать, создав функцию и передав значения в качестве параметра внутри фабрики.
Затем в функции «foo» я получаю значения и печатаю их.
Future<Album> fetchAlbum() async {
final response =
await http.get(Uri.https('jsonplaceholder.typicode.com', 'albums/1'));
if (response.statusCode == 200) {
// If the server did return a 200 OK response,
// then parse the JSON.
return Album.fromJson(jsonDecode(response.body));
} else {
// If the server did not return a 200 OK response,
// then throw an exception.
throw Exception('Failed to load album');
}
}
class Album {
final int userId;
final int id;
final String title;
Album({@required this.userId, @required this.id, @required this.title});
factory Album.fromJson(Map<String, dynamic> json) {
foo(json['userId'], json['id'], json['title']);
return Album(
userId: json['userId'],
id: json['id'],
title: json['title'],
);
}
}
void foo(userId, id, title) async {
final user = title;
print(user);
}