如何在颤动中将 json 数据转换为 List<widgets>?

Posted

技术标签:

【中文标题】如何在颤动中将 json 数据转换为 List<widgets>?【英文标题】:How to convert a json data into a List<widgets> in flutter? 【发布时间】:2021-04-28 11:45:48 【问题描述】:

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&lt;widgets&gt; 的方法,以便我可以使用它来显示项目。

我找不到将项目显示为行和列的方法。

是否可以使用FutureBuilder 拥有多个小部件? (例如,一行书籍和另一行显示作者

如果是这样,我会避免将其转换为List&lt;widgets&gt;

【问题讨论】:

【参考方案1】:

将 JSON 数据转换为对象并:

Row(
  children: entities.map((entity) => Text(entity.text)).toList();
),

它创建一个带有小部件的列表。

【讨论】:

我已经用对象映射它们,我试图将它们显示为一行而不是一个列表 Row(children: snapshot.data.items .map((entity) => Text(entity.text)) .toList(), ) 它仍然没有显示。我需要更改实体吗?如果我在文本中单独调用项目(snapshot.data.items[0].title),它工作得很好 不显示或项目显示不正确? 可以加截图吗? 我把它们排成一行:Row( children: [ for (var i = 0; i &lt; snapshot.data.items.length; i++) Text(snapshot.data.items[i].id) ], )

以上是关于如何在颤动中将 json 数据转换为 List<widgets>?的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中将 List<String> 转换为 String [重复]

如何在颤动中将 List<File> 转换为 List<Asset>

如何在颤动中将 List<Asset> 转换为 List<File>

无法在颤动中将json转换为listview

我想在颤动中将字符串转换为 Json 字符串?

如何在颤动中将对象编码为 Json