一招教會你處理Flutter中的資料

CoorChice發表於2019-04-15

目錄傳送門:《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


相關文章