我应该使用构造函数或方法将Json撤消实现List <Map>吗?

时间:2019-07-30 15:20:05

标签: dart

我正在学习Dart和Json。我想编写将Json转换为Map List的简单应用程序。并得到类似的东西:

[{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 });
  }
}

在这段代码中我需要构造函数吗?或者我可以使用公正的方法?该代码基于docs的示例。

1 个答案:

答案 0 :(得分:1)

希望我能正确理解您的查询。一种实现此目的的方法是

result = MyJsonString.map((item) => MyClass.fromJson(item).toJson()).toList();