业务场景:
在开发flutter前端过程中避免不了处理请求来得复杂的json类型数据,当然如果你是一个习惯写java等强类型语言的能手,必然会用泛型等来规范数据类型。本文将介绍如何快捷处理json提高您的开发效率!!!主要阐述介绍第三方网站来生成模型类,使用该模型类来规范您的json数据类型。
网站链接:JSON to Dart null safety
1、将json数据粘贴到左边。
{
"msg": "查询成功",
"code": 0,
"data": [
{
"id": 10,
"img": "http://172.16.1.206:8080/profile/upload/2022/05/10/8c0fa413-f006-4c11-b54e-d685a66c3bb0_20220510144234A001.jpg",
"sort": 2,
"createtime": 1652164955,
"updatetime": 1652164955
},
{
"id": 9,
"img": "http://172.16.1.206:8080/profile/upload/2022/05/10/微信截图_20220214143052_20220510165148A001.png",
"sort": 1,
"createtime": 1652164836,
"updatetime": 1652172709
}
]
}
将请求下来的json复制粘贴到左侧中。
2、设置生成的类名
3、确认格式化json
4、生成代码
会看到自动生成了一个模型类哦~
5、 复制模型类代码
class My {
My({
required this.msg,
required this.code,
required this.data,
});
late final String msg;
late final int code;
late final List<Data> data;
My.fromJson(Map<String, dynamic> json){
msg = json['msg'];
code = json['code'];
data = List.from(json['data']).map((e)=>Data.fromJson(e)).toList();
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['msg'] = msg;
_data['code'] = code;
_data['data'] = data.map((e)=>e.toJson()).toList();
return _data;
}
}
//建议修改下此类名,当请求中都有这个键名时你生成多个这样的模型类会命名冲突的!
class Data {
Data({
required this.id,
required this.img,
required this.sort,
required this.createtime,
required this.updatetime,
});
late final int id;
late final String img;
late final int sort;
late final int createtime;
late final int updatetime;
Data.fromJson(Map<String, dynamic> json){
id = json['id'];
img = json['img'];
sort = json['sort'];
createtime = json['createtime'];
updatetime = json['updatetime'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['id'] = id;
_data['img'] = img;
_data['sort'] = sort;
_data['createtime'] = createtime;
_data['updatetime'] = updatetime;
return _data;
}
}
之后直接用该类的方法处理你解析的json就好了,自动匹配数据类型~~~
6、使用该模型类
是不是很方便,超级省事呢~
记得三连
海蜘蛛:只要我足够的废物,就没有天敌!