dart json 序列化之json_serializable

924 阅读1分钟

上篇文章讲了网络请求库dio,一般请求的数据是json,需要继续转化为我们能够使用的实体类,因为dart不支持反射,序列化dart不像java那么方便,不过我们已经有现成可库可以用,其中最常用的就是json_serializable

先导包

dependencies:
  json_serializable: ^1.0.0

为了简单,我们需要将下面这串json数据转化为实体类

string str ={"name":"张三","sex":"男","addr":"广东省深圳市南山区"}

新建一个实体类

class UserEntity {
  String sex;
  String name;
  String addr;

  UserEntity({this.sex, this.name, this.addr});

  UserEntity.fromJson(Map<String, dynamic> json) {
    sex = json['sex'];
    name = json['name'];
    addr = json['addr'];
  }
}

使用方式如下

UserEntity response =
        new UserEntity.fromJson(json.decode(str));

这样就实现了json转实体类