Flutter 使用dartconvert手动序列化JSON

17 min read
{
  "name": "John Smith",
  "email": "[email protected]"
}

序列化 json 字符串 转 map 通过dart:convert库中的jsonDecode()方法

Map<String, dynamic> user = jsonDecode(jsonString);

print('Howdy, ${user['name']}!');
print('We sent the verification link to ${user['email']}.');

创建一个工厂方法来接受Map对象转换为实体类

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,
     };
}

整体转化流程就变为

Map<String, dynamic> userMap = jsonDecode(jsonString);
var user = User.fromJson(userMap);

print('Howdy, ${user.name}!');
print('We sent the verification link to ${user.email}.');