-
添加依赖:
dev_dependencies: json_serializable: ^2.0.0 jsoninflater: ^0.2.0 build_runner: ^1.0.0
-
创建模型,添加注解
JsonFlater
以及mixin
类。如:part `xxx.g.dart`; @JsonInflater() class TestGenerics1<K> with PartOfTestGenerics1 { String msg; K data; TestGenerics1(this.msg, this.data); }
mixin
类是代码生成的,格式是:PartOf${className}。功能是提供toJson()
、parse()
方法。 -
创建一个Json工具类,添加
JsonGather
注解。@JsonGather() class JsonUtil { }
一个项目中只能有一个
JsonGather
注解。 -
运行命令,生成代码:
flutter packages pub run build_runner clean flutter packages pub run build_runner build
-
使用:
-
toJson
.var test = JsonTest("json test"); print(test.toJson()); // -> {msg: json test}
-
parse<T>()
。本框架提供的一个将Map转换成模型的方法。提供5种不同泛型数量的方法:parse<T>
parse2<T1, T2>
parse3<T1, T2, T3>
parse4<T1, T2, T3, T4>
parse5<T1, T2, T3, T4, T5>
比较特殊的是,泛型需要按照如下规则:后一个泛型必须是前面泛型的泛型。如:
T1 : List<Model<String>> T2 : Model<String> T3 : String
用这样的方式解决泛型嵌套的问题。
-
-
Notifications
You must be signed in to change notification settings - Fork 0
make json serialization support generics in flutter
License
ejin66/JsonInflater
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
make json serialization support generics in flutter
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published