你好,我想问一下如何在flutter中显示列表。
这是一个来自json的示例响应,其中包含另一个列表
{
"results": [
{
"pembelian": [
{
"foto": null,
"note": null,
"avail": 1,
"harga": 5500,
"id_toko": 112,
"id_barang": 415,
"harga_toko": 4400,
"nama_barang": "Nasi"
},
{
"foto": null,
"note": null,
"avail": 1,
"harga": 5500,
"id_toko": 112,
"id_barang": 414,
"harga_toko": 4400,
"nama_barang": "Air"
}
],
"payment_method": "cash",
"total_harga": 17750
}
]
}
这是我如何从API中获取
class PesananApi {
static const String api = 'https://api.api.id/';
static const String apiOver = 'inv?invoice=';
Future<Invoice> getListInv({@required String invoice}) async {
final String url = api + apiOver + invoice;
print(url);
var response = await http.get(url).then((val) => json.decode(val.body));
return Invoice.fromJson(response['results']);
}
}
这就是我表现
FutureBuilder<Invoice>(
future: PesananApi().getListInv(
invoice:
snapshot.data.data['invoiceId'].toString()),
builder: (context, data) {
if (!data.hasData)
return Center(
child: CircularProgressIndicator(),
);
return ListView.builder(
itemCount: data.data.pembelian.length,
itemBuilder: (context, i) => new
Text(data.data.pembelian[i].namaBarang),
);
}),
对于invoice类,您可以从此处看到https://app.quicktype.io?share=8uxohFwef3SQwLcMTsdy
我只想从pembelian
开始显示列表
有人知道这个代码有什么问题吗?谢谢
3条答案
按热度按时间kq4fsx7k1#
您必须将此行从:
至:
我在这里举了一个工作例子:
yks3o0rb2#
您的列表位于另一个列表中,而该列表位于另一个命名列表中,因此您可能需要更改代码:
对此:
如果仍然不起作用,您可能需要设置一个var并获得命名列表,如下所示:
代码可能无法完美运行,但您可能希望绕过此行,它将按您预期的方式运行
wd2eg0qa3#
使用Listview.builder方法并在其源代码中传递一个数组列表