无法将数据存储在列表中[关闭]

问题描述 投票:0回答:1
我正在从代码中的链接中检索数据,但是在运行应用程序时无法将其存储到列表中。仅在阻止时显示...我想将JSON数据存储到用户列表中。当我将print语句放在for循环下面时,它仅显示单个数据,而不是整个数据。

import 'package:flutter/material.dart'; import 'dart:async'; import 'package:http/http.dart' as http; import 'dart:convert'; void main() => runApp(Myapp()); class Myapp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: HomeScreen(), ); } } Future<List<userData>>_getUserData() async{ final response =await http.get("https://dev.uneva.in/task_721/list.php"); var jsonData = json.decode(response.body); List<userData> users = []; for (var i in jsonData){ userData user = userData(i["other"]["pid"], i["name"], i["description"],i["status"] ,i["tokenName"],i["updatedAt"] ,i["tokenNumber"]); users.add(user); } print(users.length); return users; } class HomeScreen extends StatefulWidget { @override _HomeScreenState createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("ECHO-ALL"), ), body: Container( child: FutureBuilder( future: _getUserData(), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.data == null) { return Container( child: Center( child: Text("Waiting for data...."), ), ); } else { return ListView.builder( itemCount: snapshot.data.length, itemBuilder: (BuildContext context, int index) { return ListTile( title: Text(snapshot.data[index].name), ); }); } }, ), ), ); } } class userData { final String pid; final String name; final String description; final String status; final String tokenName; final String updatedAt; final String tokenNumber; userData(this.pid, this.name, this.description, this.status, this.tokenName, this.updatedAt, this.tokenNumber); }

我在哪里做错了?
json flutter flutter-layout
1个回答
1
投票
如果查看jsonData,您可能会注意到某些字段不是String而是int您的模型课应该是这样的

class userData { final int pid; final String name; final String description; final int status; final String tokenName; final String updatedAt; final int tokenNumber; userData(this.pid, this.name, this.description, this.status, this.tokenName, this.updatedAt, this.tokenNumber); }

如果您按约定重命名此类-UserData,也会更好。>
© www.soinside.com 2019 - 2024. All rights reserved.