flutter中dart bean实体类的序列化和反序列化

接口返回json示例:

{
    "code":0,
    "message":"",
    "data":{
    "avatar":"http://thirdwx.qlogo.cn/mmopen/dticvkSLXFuuJdC6IDEdhl7QqycDz9D7hvdwniazUTXRCfb7hAWMOZU3fYJibUwNRNibibGicg99Y5ZjfTD4fBeiafPsIicBbBMvdMbs/132",
    "student_id":40154,
    "wx_name":"Bliss",
    "bind_phone":"15938702026",
    "open_id":"oVxDywE0KCNk3jgjM4IeUL-xaiV8",
    "global_id":6040154,
    "login_token":"40154__db7a6e7b6e9c41bca6bf8f035360c15f"
    },
    "timestamp":1579139584,
    "success":true
    }

对应的dart bean


class LoginMsg {
  String message;
  bool success;
  int code;
  int timestamp;
  DataBean data;

  LoginMsg({this.message, this.success, this.code, this.timestamp, this.data});

  LoginMsg.fromJson(Map<String, dynamic> json) {
    this.message = json['message'];
    this.success = json['success'];
    this.code = json['code'];
    this.timestamp = json['timestamp'];
    this.data = json['data'] != null ? DataBean.fromJson(json['data']) : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['message'] = this.message;
    data['success'] = this.success;
    data['code'] = this.code;
    data['timestamp'] = this.timestamp;
    if (this.data != null) {
      data['data'] = this.data.toJson();
    }
    return data;
  }

  @override
  String toString() {
    return 'LoginMsg{message: $message, success: $success, code: $code, timestamp: $timestamp, data: $data}';
  }


}

class DataBean {
  String avatar;
  String wxName;
  String bindPhone;
  String openId;
  String loginToken;
  int studentId;
  int globalId;

  DataBean({this.avatar, this.wxName, this.bindPhone, this.openId, this.loginToken, this.studentId, this.globalId});

  DataBean.fromJson(Map<String, dynamic> json) {
    this.avatar = json['avatar'];
    this.wxName = json['wx_name'];
    this.bindPhone = json['bind_phone'];
    this.openId = json['open_id'];
    this.loginToken = json['login_token'];
    this.studentId = json['student_id'];
    this.globalId = json['global_id'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['avatar'] = this.avatar;
    data['wx_name'] = this.wxName;
    data['bind_phone'] = this.bindPhone;
    data['open_id'] = this.openId;
    data['login_token'] = this.loginToken;
    data['student_id'] = this.studentId;
    data['global_id'] = this.globalId;
    return data;
  }

  @override
  String toString() {
    return 'DataBean{avatar: $avatar, wxName: $wxName, bindPhone: $bindPhone, openId: $openId, loginToken: $loginToken, studentId: $studentId, globalId: $globalId}';
  }

}

反序列化

 print("登录成功:"+data.toString());
            Map<String, dynamic> jsonMsg = json.decode(data.toString());
            LoginMsg loginMsg = LoginMsg.fromJson(jsonMsg);
            print("json转实体类:"+loginMsg.toString());
Map userMap = json.decode(json);
var user = new User.fromJson(userMap);

序列化

String json = json.encode(user)
发布了316 篇原创文章 · 获赞 63 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/ytfunnysite/article/details/104009985
今日推荐