一招教会你处理Flutter中的数据

2,417 阅读1分钟

目录传送门:《Flutter快速上手指南》先导篇

在一个 App 中,数据类是必不可少。

我们需要从接口请求数据(通常为 JSON 格式),然后解析成对象,再使用它。

看看在 Flutter 中如何定义可解析的数据类。

1.定义数据类

class User {
  final String name;
  final String email;

  User(this.name, this.email);

  User.fromJson(Map<String, dynamic> json)
      : name = json['name'],
        email = json['email'];

  Map<String, dynamic> toJson() =>
    {
      'name': name,
      'email': email,
    };
}

其中,你必须实现 fromJson(Map<String, dynamic> json)toJson() 两个函数。

在进行数据转换时会用到它们。

2.JsonString To Object

// 解析Json
var userMap = jsonDecode(data);
var user = User.fromMap(userMap);

在调用数据类的 fromMap() 函数前,需要先调用 jsonDecode()JsonString 转换为一个 Map

jsonDecode()dart:convert 中的一个函数,因此我们需要导入 dart:convert

3.Object To JsonString

// 对象转Json
var userJson = jsonEncode(user);

使用 dart:convert 中的 jsonEncode() 就可以将一个对象转换为 JsonString,它会调用数据类的 toJson()

4.辅助插件

从上面的例子可以看出,要定义一个复杂的数据类还是很花费精力的。

幸运的是,有人制作了插件帮助我们自动的去完成这件事。

你可以在 AndroidStudio 的 Plugin 管理器中下在这个插件。

它的名字叫:dart_json_format

下载好插件后,重启 AndroidStudio。

然后通过 command + N (或者编辑框内右键选择 Generate) 唤出如下弹窗,选择 dart json format

接着会出现如下弹窗,将你的 json 数据字符串粘贴,点击确定。

很好,数据类已经生成了!

比起官方提供的 复杂方法 ,这真是太简单了!

目录传送门:《Flutter快速上手指南》先导篇

如何找到我?

传送门:CoorChice 的主页

传送门:CoorChice 的 Github