json - 使用 map 从 json 反序列化 Flutter 中的对象不起作用
问题描述
我是 Flutter 的新手。我正在尝试反序列化 json 字符串并制作飞镖对象。但我不能。
当我尝试映射时,它不会执行 debugPrint()。我不知道为什么并且没有错误?请帮我。API 工作正常。当我使用 response.body 打印数据时 - 它还会打印真正的 json 数据。
Future<List<User>> fetchData() async {
List<User> users;
final response = await http.get(
Uri.http(' 192.168.0.102:8000', 'api/users'),
);
print(response.statusCode);
//print(response.body);
if (response.statusCode == 200) {
final list = json.decode(response.body) as List;
print('is $list');
// for (var i = 0; i < list.length; i++) {
users = list.map((e) {
debugPrint(e);
return User(id: e['id'], bap: e['bap'], lgNumber: e['lgnumber']);
});
// }
print('after');
return users;
} else {
return null;
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: FutureBuilder(
future: fetchData(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
User user = snapshot.data[index];
return Text(
user.bap.toString(),
);
},
);
}
return Container();
},
),
);
}
}
解决方案
使用它从 json 获取用户列表
users = list.map((e) {
//debugPrint(e.toString());
return User(id: e['id'], bap: e['bap'], lgNumber: e['lgnumber']);
}).toList();
推荐阅读
- asp.net - 将项目添加到 ArrayList 未按预期工作
- laravel - laravel 项目中的 Vue 路由器无法处理根文件夹
- yugabyte-db - 将数据库中所有表的所有权限授予 YugabyteDB 中的用户
- android - Android Retrofit - GoogleBooksAPI - JSON 返回问题
- c# - 如何为我的 asp.net core mvc 编写连接字符串
- string - mXparser 是否支持字符串比较和子字符串内置函数?
- ms-word - MS Word 插件 - 从 Excel 中获取粘贴和链接的表格内容
- python - Nginx 阻止数据库操作 mongodb flask
- matlab - 如何开始使用 MATLAB 构建神经深度网络
- sql - 带有参数化查询的 DBI::dbSendQuery 不适用于 SQL Server