如何在 flutter 中将 json 数据转换为 List<widgets>?
How to convert a json data into a List<widgets> in flutter?
a sample of what i have in mind
var url = 'https://www.googleapis.com/books/v1/volumes?q=egg';
Future<BookResponse> getData() async {
var response = await http.get(url);
var responseBody = jsonDecode(response.body);
// print(responseBody);
return BookResponse.fromJson(responseBody);
}
-----
FutureBuilder<BookResponse>(
future: getData(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasError) print(snapshot.error);
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.items.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
title:
Text(snapshot.data.items[index].volumeInfo.title),
));
});
} else
return Center(child: CircularProgressIndicator());
},
)
我正在尝试创建一种将 json 地图转换为 List<widgets>
的方法,以便我可以使用它来显示项目。
我找不到将项目显示为行和列的方法。
是否可以使用 FutureBuilder
拥有多个小部件? (例如,一行 books 和另一行显示 authors)
如果是这样我会避免将其转换为 List<widgets>
将 JSON 数据转换为对象并:
Row(
children: entities.map((entity) => Text(entity.text)).toList();
),
它创建一个包含小部件的列表。
a sample of what i have in mind
var url = 'https://www.googleapis.com/books/v1/volumes?q=egg';
Future<BookResponse> getData() async {
var response = await http.get(url);
var responseBody = jsonDecode(response.body);
// print(responseBody);
return BookResponse.fromJson(responseBody);
}
-----
FutureBuilder<BookResponse>(
future: getData(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.hasError) print(snapshot.error);
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.items.length,
itemBuilder: (context, index) {
return Card(
child: ListTile(
title:
Text(snapshot.data.items[index].volumeInfo.title),
));
});
} else
return Center(child: CircularProgressIndicator());
},
)
我正在尝试创建一种将 json 地图转换为 List<widgets>
的方法,以便我可以使用它来显示项目。
我找不到将项目显示为行和列的方法。
是否可以使用 FutureBuilder
拥有多个小部件? (例如,一行 books 和另一行显示 authors)
如果是这样我会避免将其转换为 List<widgets>
将 JSON 数据转换为对象并:
Row(
children: entities.map((entity) => Text(entity.text)).toList();
),
它创建一个包含小部件的列表。