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

手机网站定制建设域名备案完了怎么做网站

手机网站定制建设,域名备案完了怎么做网站,网站备案的要求,伊犁网站建设前言 使用 json_annotation 框架实现json字符串序列化和反序列化 框架官方地址:json_serializable 一、引入依赖:在pubspec.yaml中添加 dependencies:json_annotation: ^4.8.1dev_dependencies:build_runner: ^2.3.3json_serializable: ^6.6.0 二、…

前言

使用 json_annotation 框架实现json字符串序列化和反序列化

框架官方地址:json_serializable

一、引入依赖:在pubspec.yaml中添加

dependencies:json_annotation: ^4.8.1dev_dependencies:build_runner: ^2.3.3json_serializable: ^6.6.0

二、使用过程

数据源:

{"id": 1,"name": "John","email": "john@example.com","phone_numbers": [{"type": "home","number": "1234567890"},{"type": "work","number": "0987654321"}]
}

创建数据模型:

// 引入依赖
import 'package:json_annotation/json_annotation.dart';// 指定此类的代码生成文件(格式:part '类名.g.dart';)
part 'Person.g.dart';// 添加序列化标注
@JsonSerializable()
class Person {int id;String name;String email;// 使用别名@JsonKey(name: "phone_numbers")List<PhoneNumber> phoneNumbers;Person(this.id, this.name, this.email, this.phoneNumbers);// 添加反序列化方法(格式:factory 类名.fromJson(Map<String, dynamic> json) => _$类名FromJson(json);)factory Person.fromJson(Map<String,dynamic> json) => _$PersonFromJson(json);// 添加序列化方法(格式:Map<String, dynamic> toJson() => _$类名ToJson(this);)Map<String,dynamic> toJson() => _$PersonToJson(this);
}@JsonSerializable()
class PhoneNumber {String type;String number;PhoneNumber(this.type, this.number);factory PhoneNumber.fromJson(Map<String,dynamic> json) => _$PhoneNumberFromJson(json);Map<String,dynamic> toJson() => _$PhoneNumberToJson(this);
}

使用命令生成对应的.g.dart内容

在android studio的Terminal终端使用如下命令:

flutter pub run build_runner build

命令生成过程:

PS D:\AndroidStudioProjects\github_client_app> flutter pub run build_runner build
Deprecated. Use `dart run` instead.
Building package executable... (5.9s)
Built build_runner:build_runner.
[INFO] Generating build script completed, took 252ms
[INFO] Reading cached asset graph completed, took 73ms
[INFO] Checking for updates since last build completed, took 685ms
[INFO] Running build completed, took 19.0s
[INFO] Caching finalized dependency graph completed, took 87ms
[INFO] Succeeded after 19.1s with 602 outputs (606 actions)
PS D:\AndroidStudioProjects\github_client_app> flutter pub run build_runner build
Deprecated. Use `dart run` instead.
[INFO] Generating build script completed, took 252ms
[INFO] Reading cached asset graph completed, took 193ms
[INFO] Checking for updates since last build completed, took 683ms
[INFO] Running build completed, took 10.1s
[INFO] Caching finalized dependency graph completed, took 86ms
[INFO] Succeeded after 10.2s with 189 outputs (193 actions)

查看Person.g.dart

// GENERATED CODE - DO NOT MODIFY BY HANDpart of 'Person.dart';// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************Person _$PersonFromJson(Map<String, dynamic> json) => Person(json['id'] as int,json['name'] as String,json['email'] as String,(json['phone_numbers'] as List<dynamic>).map((e) => PhoneNumber.fromJson(e as Map<String, dynamic>)).toList(),);Map<String, dynamic> _$PersonToJson(Person instance) => <String, dynamic>{'id': instance.id,'name': instance.name,'email': instance.email,'phone_numbers': instance.phoneNumbers,};PhoneNumber _$PhoneNumberFromJson(Map<String, dynamic> json) => PhoneNumber(json['type'] as String,json['number'] as String,);Map<String, dynamic> _$PhoneNumberToJson(PhoneNumber instance) =><String, dynamic>{'type': instance.type,'number': instance.number,};

使用示例:

void jsonTest() {final json = '''
{"id": 1,"name": "John","email": "john@example.com","phone_numbers": [{"type": "home","number": "1234567890"},{"type": "work","number": "0987654321"}]
}
''';final person = Person.fromJson(jsonDecode(json));print("steve:${person.name}");final jsonEncoded = jsonEncode(person.toJson());print("steve:$jsonEncoded");}

打印的日志:

I/flutter ( 1781): steve:John
I/flutter ( 1781): steve:{"id":1,"name":"John","email":"john@example.com","phone_numbers":[{"type":"home","number":"1234567890"},{"type":"work","number":"0987654321"}]}

补充:

jsonKey

  • nullable:默认为true,表示该字段可为null
  • defaultValue:如果源JSON不包含该key或该keyvaluenull,提供一个默认值。
  • name:别名,若为null则默认为字段名。
  • required:默认为false,若为真会检查JSON是否包含该key,若没有则抛出异常(keynull也是有效的)。

生成.g.dart文件

一次性构建
flutter packages pub run build_runner build
删除后重新构建
flutter packages pub run build_runner build --delete-conflicting-outputs
自动为后续创建的数据模型创建
flutter packages pub run build_runner watch

http://www.yayakq.cn/news/653313/

相关文章:

  • 北京网站设计公司有哪些网站从哪些方面来做
  • 采集站seo课程wordpress文章部分显示图片
  • 网站盈利模式分析怎么做搜狗网站
  • 新郑市住房建设局网站wordpress 手机版
  • 建设电子票务系统的网站需要多少钱国家建设规范网站
  • 苏州市建设职业中心网站做百度网站那家好
  • 宿迁网站建设案例全屋设计师需要学什么
  • 做app还是做微网站好怎样在织梦网站建设目录
  • 网站icp备案证明文件wp wordpress教程
  • 太原网站建设vhuashi北京赛车网站开发
  • 烟台网站建设方案推广采集伪原创wordpress
  • 网站后台演示地址网站做支付宝接口吗
  • 鲲鹏建设集团有限公司网站小学网站源码php
  • 乐清建设网站公司WordPress切换标记
  • 怎么在工商局网站做注销如何开展一个网络营销活动
  • 个人网站如何建立网站建设定金合同
  • 订餐网站建设保定专业做网站
  • wordpress 回收站在哪洛阳公司做网站
  • 网站业务怎么做免费查企业老板的软件
  • 全面的苏州网站建设网站建设管理指导意见
  • 绍兴做外贸网站的公司搜索引擎禁止的方式优化网站
  • 泉州市建设网站公司logo设计图片素材
  • 蜘蛛网网站建设分析广州竞价托管
  • 上海站群优化黑龙江建设网一体化平台
  • 网站开发的小结wordpress调取文章列表
  • 开发区网站建设在哪wordpress页脚
  • 沈阳网站建设方案策划滨海天津网站建设
  • 网页设计网站网站建设课程设计扫一扫识别图片
  • 答题卡在线制作网站合肥网站建设 卫来网络
  • 韩国设计app网站有哪些游戏网站建设一条龙