当前位置: 首页 > news >正文

免费样机素材网站霸州市网站建设

免费样机素材网站,霸州市网站建设,做网站动态背景的图片,万网创始人与慧聪网1、FlutterJsonBeanFactory 在Setting->Tools->FlutterJsonBeanFactory里边自定义实体类的后缀,默认是entity 复制json到粘贴板,右键自己要存放实体的目录,可以看到JsonToDartBeanAction Class Name是实体名字,会默认加上…

1、FlutterJsonBeanFactory

在Setting->Tools->FlutterJsonBeanFactory里边自定义实体类的后缀,默认是entity

复制json到粘贴板,右键自己要存放实体的目录,可以看到JsonToDartBeanAction

Class Name是实体名字,会默认加上entity
JSON TextJson文本
null-able勾选后所有属性都是可空的?,不勾选都会加上late,延迟初始化

 

执行Make后生成代码目录如下:
models项目自建,存放实体
generated/json是插件生成目录,xx_entity.g.daet是实体类生成的辅助类方法, base是存放基础公共代码

 

后台返回的数据一般是经过一层包装

{"code": 200,"message": "success","data":{"id": "1","name": "qi1","age": 18}
}

而重新用插件生成会生成如下代码:

@JsonSerializable()
class ApiResponseEntity {int? code;String? message;ApiResponseData? data;ApiResponseEntity();factory ApiResponseEntity.fromJson(Map<String, dynamic> json) => $ApiResponseEntityFromJson(json);Map<String, dynamic> toJson() => $ApiResponseEntityToJson(this);@overrideString toString() {return jsonEncode(this);}
}@JsonSerializable()
class ApiResponseData {String? id;String? name;int? age;ApiResponseData();factory ApiResponseData.fromJson(Map<String, dynamic> json) => $ApiResponseDataFromJson(json);Map<String, dynamic> toJson() => $ApiResponseDataToJson(this);@overrideString toString() {return jsonEncode(this);}
}

要是这样,每一个接口的都有一个ResponseEntity,使用起来不便于统一封装。
所以我们可以把ApiResponseData换成 dynamic,文件底部的ApiResponseData信息也全部删除,再执行Alt+J,这样就会自动清理掉整理json_convert_content.dartapi_response_entity.g.dart中的ApiResponseData痕迹。再把dynamic替换成T,并且去除顶部的@JsonSerializable(),避免下次执行Alt+J,替换掉自己的自定义。

@JsonSerializable()
class ApiResponseEntity<T> {late int code;late String message;late T data;ApiResponseEntity();factory ApiResponseEntity.fromJson(Map<String, dynamic> json) =>$ApiResponseEntityFromJson<T>(json);Map<String, dynamic> toJson() => $ApiResponseEntityToJson(this);@overrideString toString() {return jsonEncode(this);}
}
ApiResponseEntity<T> $ApiResponseEntityFromJson<T>(Map<String, dynamic> json) {final ApiResponseEntity<T> apiResponseEntity = ApiResponseEntity<T>();final int? code = jsonConvert.convert<int>(json['code']);if (code != null) {apiResponseEntity.code = code;}final String? message = jsonConvert.convert<String>(json['message']);if (message != null) {apiResponseEntity.message = message;}final T data = jsonConvert.convert<dynamic>(json['data']);if (data != null) {apiResponseEntity.data = data;}return apiResponseEntity;
}Map<String, dynamic> $ApiResponseEntityToJson(ApiResponseEntity entity) {final Map<String, dynamic> data = <String, dynamic>{};data['code'] = entity.code;data['message'] = entity.message;data['data'] = entity.data;return data;
}

并且把api_response_entity.g.dart移除generated目录,因为那个目录会自动删除无用的文件。可以和api_reponse_entity.dart单独存放在一个文件夹当中。

优化后使用

第一次发现,reponse的data是null。因为新的插件在 asT方法没有去调用fromJsonAsT,这个需要我们自加上,否则会失败。

if (_convertFuncMap.containsKey(type)) {return _convertFuncMap[type]!(value) as T;
} else {return fromJsonAsT<T>(value);// throw UnimplementedError('$type unimplemented');
}
  //单实体String responseData1 = """{"code": 200,"message": "success","data":{"id": 1,"name": "qi1","age": 21}}""";//ListString responseData2 = """{"code": 200,"message": "success","data":[{"id": 1,"name": "qi1","age": 21},{"id": 2,"name": "qi2","age": 22}]}""";//基础数据类型String responseData3 = """{"code": 200,"message": "success","data": 18}""";_apiResponseDecode() {setState(() {response1 = ApiResponseEntity.fromJson(jsonDecode(responseData1));response2 = ApiResponseEntity.fromJson(jsonDecode(responseData2));response3 = ApiResponseEntity.fromJson(jsonDecode(responseData3));});}_getApiResponseContent() {return response1.toString() +"\n" +response2.toString() +"\n" +response3.toString();}

参考链接:https://juejin.cn/post/7043721908801503269

 

http://www.15wanjia.com/news/187813.html

相关文章:

  • 建手机wap网站大概多少钱国土局网站建设情况汇报
  • 忻州市城乡建设局网站中国菲律宾足球历史战绩
  • 临沂网站开发技术员域名查询备案查询
  • 无锡网站制作企业微信小程序可以做网站用
  • 化州网站建设公司电子商务网站包括
  • 软件网站开发设计什么平台可以免费推广产品
  • 查关键词热度的网站深圳建网站兴田德润可信
  • 网站维护 案例关于建设网站的经费请示
  • 帮人做图挣外快的网站软件开发者是什么意思
  • 想做一个能上传视频的网站怎么做wordpress首页广告位
  • 哪个网站做不锈钢好flash 网站 源码
  • 第一页网站SEO新品发布会手机
  • 做标书要不要做网站2023年税收最新政策
  • 维力安网站建设公司网络服务提供者知道或者应当知道网络用户利用其网络
  • 网站开发遇到的风险织梦网站程序模板下载
  • 央企直招出国劳务网站动感地带青春卡
  • 电影资源网站开发站长之家whois查询
  • 网站做3年3年包括什么河南第二建设集团网站视频
  • 网站的记住密码功能怎么做响应式网站服务
  • 企业网站建设方案详细方案物流网站建设平台分析
  • 做网站需要哪些证书荣耀手机官方网站
  • 阿里云网站怎么备案域名解析西安网约车
  • 建设网站犀牛云wordpress 静态页面显示文章
  • 长宁区网站建设网页制作益阳购物网站开发设计
  • 网站运营可以转行做网站设计吗阿里云 wordpress 慢
  • 做网站还赚钱吗网页设计与制作知到智慧树答案
  • 做网赌网站需要多少钱建设博物馆网站
  • 微信公众平台怎么做微网站0311网站建设
  • 西安网站建设怎么接单建设网站费用记什么科目
  • 招生网站模版公司怎么注册自己的网站