flutter 序列化 jsonEncode jsonDecode

json_encode是将数值转换成json 格式,json_decode()函数将json数据转换成数组 

flutter 进行数据传递需要进行序列号 进行编码 解码

要序列化一个ServiceInfoModel ,我们只是将该ServiceInfoModel 对象传递给该JSON.encode方法。我们不需要手动调用toJson这个方法,因为JSON.encode已经为我们做了。

一个usebean对象

class User {
  User(this.id, this.name);

  int id;
  String name;

//jsonDecode(sting) ->就是fromJson过程 转成结果为map
  User.fromJson(Map json) {
    id = json['id'];
    name = json['name'];
  }

//jsonEncode(user) ->就是tojson过程
  Map toJson() {
    final Map data = new Map();
    data['id'] = this.id;
    data['name'] = this.name;
    return data;
  }
}

 进行jsonencode 和jsondecode进行编码解码

  /// 用户登录。简单起见,返回User
  Future login(String mobile, String sms) async {
 
    User user = User(1, '程序员磊哥');
    print('登录成功: $user');
    var data = jsonEncode(user);
    print("jsonEncode转换的结果对象转为json过程" + data);
    Map user2 = jsonDecode(data.toString());
    print("jsonDecode转换的结果为map并得到map的id值为" + user2["id"].toString());
    User user3 = User.fromJson(jsonDecode(data.toString()));
    print("jsonDecode转换的结果为map再用 User.fromJson(string)转为对象use" + user3.name);
    return user;
  }

 解码 编码后运行结果


I/flutter (17450): jsonEncode转换的结果对象转为json过程{"id":1,"name":"程序员磊哥"}
I/flutter (17450): jsonDecode转换的结果为map并得到map的id值为1
I/flutter (17450): jsonDecode转换的结果为map再用 User.fromJson(string)转为对象use程序员磊哥
I/flutter (17450): 加载首页数据...
I/flutter (17450): 加载首页数据完成

 

 

 

你可能感兴趣的:(flutter使用记录)