首页 > 解决方案 > 我应该使用构造函数或方法来实现 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方法?该代码基于文档中的示例。

标签: dart

解决方案


我希望我理解你的查询正确。实现这一目标的一种方法是

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

推荐阅读