关于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 对象。处理和不处理就看自己了
厚积薄发,笨鸟先飞。