在一個 App 中,數據類是必不可少。github
咱們須要從接口請求數據(一般爲 JSON 格式),而後解析成對象,再使用它。json
看看在 Flutter 中如何定義可解析的數據類。bash
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()
兩個函數。post
在進行數據轉換時會用到它們。this
2.JsonString To Objectspa
// 解析Json
var userMap = jsonDecode(data);
var user = User.fromMap(userMap);
複製代碼
在調用數據類的 fromMap()
函數前,須要先調用 jsonDecode()
將 JsonString 轉換爲一個 Map。插件
jsonDecode()
是 dart:convert
中的一個函數,所以咱們須要導入 dart:convert
。3d
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 數據字符串粘貼,點擊肯定。
很好,數據類已經生成了!
比起官方提供的 複雜方法 ,這真是太簡單了!