json - 如何将 JSON 解码为模型对象列表
问题描述
我正在使用下面的代码解码一个 JSON http 响应模型对象列表。它工作得很好,但是我问我如何将代码重写为
- 不使用类型转换“作为列表”
- 将类型“动态”替换为更具体的类型“代码模型”
final List<CodeModel> codes = (json.decode(response.body) as List)
.map((dynamic model) => CodeModel.fromJson(model))
.toList();
解决方案
通常,您应该避免在分析器可以为您解决的情况下使用明显的静态类型。
您可以将代码替换为:
final codes =
json.decode(response.body).map<CodeModel>((m) => CodeModel.fromJson(m)).toList();
print(codes.runtimeType);
无需指定类型codes
- 可以推断。
更改.map
为.map<CodeModel>
告诉分析器 lambda 将返回 a CodeModel
,因此toList
将生成它们的列表。
打印行List<CodeModel>
按预期打印。
推荐阅读
- react-native - 使用 swiper 在 react-native 中渲染配置文件
- javascript - 为什么我的网络摄像头一直显示错误
- java - 使用 Spring Security 和 AngularJS 预防 CSRF
- r - 从数据表的子集创建 igraph 失败
- java - 如何使用spring集成从sftp服务器下载文件而不使用spring boot
- azure - 如何将 Azure VM 重新启动和关闭日志获取到 Azure Log Analytics?
- reactjs - 在反应中更新子组件状态
- sql - SELECT SQL 匹配号码
- firebase - 使用 Firestore 后端进行版本控制的最佳实践
- mysql - 从具有相应列值的多列mysql中选择最大值