【Flutter】序列化方案之命令行生成model

目录

  • 方案一、json_model 一行命令,将json文件转为Dart model类及.g.dart。
    • 安装
    • 使用
  • 方案二、build_runner 手动写model类,命令行生成.g.dart序列化类
    • 安装
    • 使用
  • 参考

方案一、json_model 一行命令,将json文件转为Dart model类及.g.dart。

安装

dependencies:
json_annotation: ^4.8.1dev_dependencies:
json_model: ^1.0.0
json_serializable: ^6.7.1

使用

  1. 在工程根目录下创建一个名为 jsons 的目录;
  2. 创建或拷贝json文件到 jsons 目录中 ;
  3. flutter packages pub run json_model 命令生成Dart model类,生成的文件默认在"lib/models"目录下

方案二、build_runner 手动写model类,命令行生成.g.dart序列化类

安装

dependencies:
json_annotation: ^4.8.1dev_dependencies:
build_runner: ^2.4.9
json_serializable: ^6.7.1

使用

  1. lib下新建models文件夹,创建model类,根据需要执行下面命令行
  2. 一次性构建
    flutter packages pub run build_runner build
  3. 删除后重新构建
    flutter packages pub run build_runner build --delete-conflicting-outputs
  4. 文件监听,自动为后续创建得实体类生成对应得.g.dart文件
    flutter packages pub run build_runner watch

参考

  • Pub: json_model
  • 使用json_annotation创建数据模型

源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SFP、SFP+、SFP28 与 QSFP28 收发器之间的差异:兼容性和性能

近年来,网络技术发展迅速,因此,计算专业人员面临着越来越令人困惑的术语和缩写词。 管理数据中心时必须了解的一个关键领域是收发器,特别是 SFP (1550nm/1310nm)、SFP (850nm) 和 QSFP28 (4x25G) 之间的差异。 这些型号在兼容性方…

深入浅出 SQL 优化:全面提升查询性能的技巧

文章目录 前言一、表结构分析1. 索引分析2. 数据类型分析3. 思考反范式设计的适用场景与潜在风险3.1数据冗余3.2 数据一致性3.3 更新性能 4. 关注临时表的创建与使用。4.1.尽量减少临时表的使用,以降低系统资源的消耗。4.2 使用合适的索引和数据类型优化临时表的性能…

HarmonyOS ArkUI实战开发-窗口模块(Window)

窗口模块用于在同一物理屏幕上,提供多个应用界面显示、交互的机制。 对应用开发者而言,窗口模块提供了界面显示和交互能力。对于终端用户而言,窗口模块提供了控制应用界面的方式。对于操作系统而言,窗口模块提供了不同应用界面的…

internet.getUserEncryptKey提示错误

大家好,相信你看到标题的时候,你应该是遇到这样的麻烦事情,微信小游戏的官方文档的说明不够全面,所以导致开发者在开发过程中会遇到非常棘手的问题,但无奈的是官方给与的只有冷冰冰的文字,包括很多开发者在开发者平台留言自己遇到的问题,比如常见的这个:internet.getUs…

swiper 去掉轮播图上的小点点 小圆圈(完美解决方案)

文章目录 问题描述解决方案问题复现处理方案 问题描述 大家好!我是夏小花,今天是2024年4月22日|农历三月十四,今天这篇博文主要解决swiper 去掉轮播图上的小点点 小圆圈,具体解决方案如下所示 解决方案 问题复现 现在现在可以看…

命令模式:将请求封装为对象

在软件工程中,设计模式是解决常见问题的成熟模板。命令模式(Command Pattern)是这些设计模式之一,它属于行为型模式,用于将一个请求封装为一个对象,从而允许用户使用不同的请求、队列或日志请求来参数化其他…

数据结构初阶-二叉树

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 二叉树 树概念和结构 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限节点组成的一个具有层次关系的集合,把它叫做树…

python--pyQt5 进度条:QProgressBar

https://www.cnblogs.com/itwangqiang/articles/14959401.html https://blog.csdn.net/weixin_43990846/article/details/123880081 进度条用于向用户指示操作的进度,并向他们保证应用程序仍在运行 例 1 import sys from PyQt5.QtWidgets import QApplication, QWi…

【机器学习】特征筛选:提升模型性能的关键步骤

一、引言 在机器学习领域,特征筛选是一个至关重要的预处理步骤。随着数据集的日益庞大和复杂,特征的数量往往也随之激增。然而,并非所有的特征都对模型的性能提升有所贡献,有些特征甚至可能是冗余的、噪声较大的或者与目标变量无关…

Webpack-

定义 静态模块:指的是编写代码过程中的html,css,js,图片等固定内容的文件 打包:把静态模块内容压缩、整合、翻译等(前端工程化) 1)把less/sass转成css代码 2)把ES6降级…

OpenHarmony鸿蒙南向开发案例:【智能加湿器】

样例简介 智能加湿器具有实时监控其所处环境温度、湿度,并通过数字管家设置日程,自动打开加湿器控制湿度功能。显示界面使用DevEco Studio 编写的js应用,具有很好的兼容和移植特性。硬件上采用了带有HDF框架的驱动模型,通过GPIO和…

nodejs在控制台打印艺术字

const figlet require("figlet");figlet("SUCCESS", function (err, data) {if (err) {console.log("Something went wrong...");console.dir(err);return;}console.log(data);}); 参考链接: https://www.npmjs.com/package/figlet…

JetBrains相关的IDE有哪些?

JetBrains是一家成立于2002年的捷克软件开发公司,总部位于捷克的布拉格,同时在俄罗斯的圣彼得堡及美国麻州波士顿等地设有办公室。该公司以其高质量的集成开发环境(IDE)产品而闻名,这些产品被广泛应用于各种编程语言和…

.net 报错 远程主机强迫关闭了一个现有的连接 问题分析解决

先测试cmd 发现可以ping通地址:证明不是网络问题 postman 报错 Error: Hostname/IP does not match certificates altnames 设置里ssl验证默认开启,把选项关闭,接着就正常了:证明应该是https或ssl 相关通讯出现问题 visual st…

Android studio配置Flutter(看这一篇就够了)

Flutter 是 Google 推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart 语言开发 App,一套代码同时运行在 iOS 和 Android平台。 Flutter 提供了丰富的组件、接口,开发者可以很快地为 Flutter 添加 Native&#…

牛批!大三就冲进腾讯了!最新大厂后端面经面试题

先来唠唠 最近有一些小伙伴都约到了腾讯的面试,今天分享一位成功上岸腾讯的大三同学的面经。 希望可以鼓励到你! (对了,文末有面经交流群) 一面大概持续了45分钟,有35分钟都是在问Go基础相关的知识&…

20240420

docker 使用不添加sudo前缀 确认group: getent group如果没有docker组:sudo groupadd docker添加用户到docker组: sudo usermod -aG docker freja重启docker: sudo systemctl restart docker测试后依旧报错,如果是还是…

基于开源CrashRpt与微软开源Detours技术深度改造的异常捕获库分享

目录 1、异常捕获模块概述 2、为什么需要异常捕获模块? 3、在有些异常的场景下是没有生成dump文件的 4、开源异常捕获库CrashRpt介绍 5、对开源库CrashRpt的改进 C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持…

【图说】VMware Ubuntu22.04 详细安装教程

前言 无论是从事 Linux 开发工作,还是希望电脑运行双系统,VMware 虚拟机都是我们日常工作不可或缺的工具。本章将会重点介绍 VMware 安装流程,以及在 VMware 上如何运行、使用 Ubuntu22.04 系统。 一、VMware 下载安装 1.1 VMware 官网下载…

MySQL--创建,删除,查找,案例

1.数据库的---创建,删除,查找,案例 create database 数据库名称; # 创建一个数据库,所有参数默认 create database 数据库名称 [default chasetutf8mb4] # 创建的同时指定了编码2.drop删除 drop database 数据库名称;3.进入数据库…