關於flutter 解析json
自己看了幾天,最近才大概知道是怎么個情況。
首先 要處理的 是后端返回的數據 ,如果是直接請求的話返回的是json 字符串 然后要把字符串轉成對象,有幾種方式參考
第一種:內置json直接解析 引入import 'dart:convert';即可使用。 var map = { "name": "zhangsan", "email": "123@qq.com", "age": 1 }; //轉成字符串 String name = json.encode(map); print(name); //解析字符串 Map<String, dynamic> user = json.decode(name); print("姓名:${user['name']}"); print("郵箱:${user['email']}"); print("年齡:${user['age']}"); } 這種是可以直接在當前類解析,
第二種:內置json創建model方式解析。 先建立model, class User { String name; String email; int age; User(this.name, this.email, this.age) {} User.fromJson(Map<String, dynamic>json) :name=json["name"], email = json["email"], age = json["age"]; Map<String, dynamic> toJson() { return { "name": name, "email": email, "age": age }; } } 然后可以使用了, var map = { "name": "zhangsan", "email": "123@qq.com", "age": 1 }; var user = User.fromJson(map); print("name:${user.name}"); var userMap = User("lisi", "321@qq.com", 3).toJson(); for (var key in userMap.keys) { print("${key} : ${userMap[key]}"); }
這種是比較常用的用來解析復雜的json
如果是用dio 則返回的數據就是json 對象。處理和不處理就看自己了