dart - 我应该使用构造函数或方法来实现 Json 到 List
问题描述
我正在学习 Dart 和 Json。我想编写将 Json 转换为地图列表的简单应用程序。并得到类似的东西:
[{id: 1, name: "mike"}, {"id": 2, "name": "piter"} ]
从
[{"id" : 1 , "name" : "mike", "code" : "01"}, {"id" : 2 , "name" : "piter", "code" : "02"}];
我写了一些代码。但我不确定我应该在每次迭代中创建类的实例,还是有更好的方法?
import 'dart:io';
import 'dart:async';
import 'dart:convert';
main() async
{
List<Map<String, dynamic>> MyJsonString = [{"id" : 1 , "name" : "mike", "code" : "01"}, {"id" : 2 , "name" : "piter", "code" : "02"}];
List<Map<String, dynamic>> result;
for(Map str in MyJsonString)
{
MyClass mc = MyClass.fromJson(str);
// .... here
}
}
class MyClass
{
int id;
String name;
MyClass(this.id, this.name);
MyClass.fromJson(Map<String, dynamic> json)
{
id = json['id'];
name = json['name'];
}
Map<String, dynamic> toJson()
{
return ({ 'id': id, 'name': name });
}
}
我需要在这段代码中使用构造函数吗?或者我可以使用just方法?该代码基于文档中的示例。
解决方案
我希望我理解你的查询正确。实现这一目标的一种方法是
result = MyJsonString.map((item) => MyClass.fromJson(item).toJson()).toList();
推荐阅读
- java - 用于插入学生详细信息的休眠应用程序
- angular - 解决了!Angular 9 routerlink 和 router-outlet 问题
- pentaho - 通过 JDBC 使用 Petnatho 数据集成将批量加载到雪花中很慢
- highcharts - 将 SVG 图像添加到 highcharts 中的符号
- google-bigquery - 运行计划查询时出现“在位置找不到数据集”错误消息
- javascript - 如何将鼠标悬停在元素上然后使用赛普拉斯单击
- nginx - 使用 nginx 位置在一些静态页面旁边有一个反应应用程序
- php - grav cms : 包含 php 文件的树枝扩展
- python - 中心流光按钮
- javascript - 如何在 vanilla JavaScript 中切换多个类?