JoJo的个人博客

记录精彩的程序人生

目录
Flutter Model和Json转化
/  

Flutter Model和Json转化

设置依赖

dependencies:
  # Your other regular dependencies here
  json_annotation: ^2.0.0

dev_dependencies:
  # Your other dev_dependencies here
  build_runner: ^1.0.0
  json_serializable: ^2.0.0

编写model类

user.dart

import 'package:json_annotation/json_annotation.dart';

// user.g.dart 将在我们运行生成命令后自动生成
part 'user.g.dart';

///这个标注是告诉生成器,这个类是需要生成Model类的
@JsonSerializable()

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

  String name;
  String email;
  //不同的类使用不同的mixin即可
  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
  Map<String, dynamic> toJson() => _$UserToJson(this);  
}

有了上面的设置,源码生成器将生成用于序列化nameemail字段的JSON代码。

如果需要,自定义命名策略也很容易,可以使用@JsonKey标注:

//显式关联JSON字段名与Model属性的对应关系 
@JsonKey(name: 'registration_date_millis')
final int registrationDateMillis;

运行命令

在根目录新建文件json.sh,编写一下命令

flutter packages pub run build_runner build --delete-conflicting-outputs

没有权限的话,赋予下权限

chmod +x json.sh 

执行生成json序列化代码,修改model的话,再次执行就好了

./json.sh


标题:Flutter Model和Json转化
作者:SunnySky
地址:https://www.tianyang.pub/articles/2020/07/02/1593678130548.html

评论