在开发过程中,我们一般都是使用插件或工具一键生成实体类的,这样极大的提高了开发效率,目前我们可以通过在线生成的方式来一键生成Dart类。

1. 使用json_to_dart

地址:

https://javiercbk.github.io/json_to_dart/

  1. 首先打开 json_to_dart

页面如下:

json_to_dart界面
  1. 将json数据赋值到输入框中,点击创建Dart类,然后右边就是生成好的Dart代码,类名可以复制到编辑器后自行修改

json数据赋值到输入框
  1. 使用如下

2. 使用 json_serializable

json_serializable是一个自动化的源代码生成器,可以为我们生成JSON序列化模板。在pubspec.yaml中添加依赖并执行flutter pub get:

dependencies:  json_annotation: ^3.0.0

dev_dependencies:  build_runner: ^1.0.0  json_serializable: 3.2.0

生成模型类我们使用写的json2dart工具。

https://caijinglong.github.io/json2dart/index_ch.html

  1. 工具使用很简单直接粘贴生成对应的类名称

json2dart
  1. 将生成代码复制到我们创建的模型中。

生成代码
  1. 运行代码生成程序

上面的模型类生成之后会先报错,因为模型类的生成代码还不存在,所以我们需要运行代码生成器来为我们生成序列化模板。

# 一次性生成flutter packages pub run build_runner build

# 持续生成flutter packages pub run build_runner watch

这里选择哪种方式取决于你的改动频率,推荐使用watch的方式。

  1. 使用
Map personList = JSON.decode(json);var list = getPersonModelList(personList);

json_serializable这种方式,我们可以轻松的生成一个模型类。通过源代码生成器创建一个g.dart的文件,它具有所有必需的序列化逻辑。

3. 使用工具网站 - app.quicktype.io

其实我挺推荐这种。

app.quicktype.io是一个将JSON转换成模型类的工具网站,目前来看支持大部分常用语言,并且灵活的可选项也非常多:

app.quicktype.io可选项

用上面的JSON做一下尝试:

app.quicktype.io

生成的模型类是使用了Flutter内置的dart:convert做序列化。

app.quicktype.io生成的代码

可以看到这个模型类正是我们需要的,使用方式也在上面注释的很清楚,目前来讲这种方式操作起来会比使用json_serializable操作起来更简便一些。

总结:

  1. json_to_dart: 效率高。
  2. json_serializable:效率高,watch很好用。
  3. app.quicktype.io工具网站:效率高,更多语言和功能可选。

打开json文件的工具_Flutter中JSON转Model——在线生成相关推荐

  1. 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session

    1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...

  2. 打开.pdm文件的工具

    最近在做项目的时候,总是需要打开.pdm格式的数据库表设计文件,而我以前用的那个PowerDesigner 12工具,总是报各种错误(也许是我没安装好... :( ),而且还是英文版的..(后悔英语没 ...

  3. 计算机内容的ppt,电脑打开ppt文件出错提示ppt中的内容有问题如何解决

    ‍ 今天在本文中主要介绍一下在电脑系统中打开ppt文件出错提示ppt中的内容有问题的解决方法.有个用户从网上下载了一些PPT,包括.ppt和.pptx两种版本文件,点击打开总是提示ppt的内容有问题. ...

  4. ubuntu 19.04 上打开.md文件的工具

    ubuntu 19.04 上打开.md文件的工具 wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add - sudo ...

  5. windows 打开大文件 日志 工具

    windows 打开大文件 日志 工具 通常使用txt工具或nodepad++ 打开1G以上的日志上的文件会卡死或者报错.找到一个强大的工具 - EmEdit  亲测0秒打7G的日志文件,可进行编辑! ...

  6. 解决:利用IDEA的右上角图标打开jsp文件,在浏览器中打开的是“本机文件路径”,而不是“http路径”问题

    解决:利用IDEA的右上角图标打开jsp文件,在浏览器中打开的是"本机文件路径",而不是"http路径"问题 一·问题描述: 二·错误原因: 三·解决方法: 方 ...

  7. 下载json文件,解决浏览器对JSON文件链接直接打开问题

    一般下载都是在a标签里面防止文件链接,就可以直接下载,但对于text,json东风文件的链接,浏览器自动在新窗口打开, 所以,想要下载,需要右键另存,当前这篇  主要事解决这个问题  当人  你也可以 ...

  8. vscode json文件编辑工具

    vScode json编辑工具 VScode除了可以当做开发工具其实作为一个文本编辑工具来说也是不错的,之前一直是使用的sublime text作为文件编辑器,然后方向VScode加上各种插件之后好用 ...

  9. 服务器json文件怎么创建对象,JavaScript中对JSON对象的基本操作示例

    JSON对象 1.对象的属性:对象的属性是有键值对组成的,其中key为一个字符串,value可以为任何的Javascript对象. //使用[]设置和获取对象的属性 var obj = new Obj ...

最新文章

  1. flash 入门课知识小结
  2. 软件架构设计之常用架构模式
  3. JZOJ 5195. 【NOIP2017提高组模拟7.3】A
  4. Java 8 – Period and Duration examples
  5. Visual Studio 起始页中不显示最近使用的项目的解决办法
  6. 6年Python开发,教你一天入门 Python
  7. 条件过滤(商品名称、价格以及商品类别的查询)
  8. jQuery中animate( )的方法及$(“body“).animate({‘scrollTop‘:top},500)不被Firefox支持问题的解决
  9. Cron定时任务应用到Thinkphp – 贤生博客
  10. 局域网组网 | 交换机常用命令
  11. MS520,参数,非接触式读卡IC
  12. 第3章【思考与练习4】数据清洗,从studentsInfo.xlsx 文件的“Group1”表单中读取数据。数据填充,使用习题1的数据,使用列的平均值填充“体重”和“成绩”列的NaN数据。
  13. mp2 解码器kjmp输出32bit
  14. 长期:如何找到适合自己的节奏?
  15. Web112~125,184~197
  16. iTerm2 + Oh My Zsh,打造专属你的终端神器
  17. oracle中计算两个日期之间的差值
  18. Android | navigation入门详解
  19. 视觉系统(CCD)光轴校正-项目实践
  20. 【车】铅酸电池和锂电池、鼓刹和碟刹

热门文章

  1. 详解ifconfig命令
  2. 【Oracle】ORA-27369: job of type EXECUTABLE failed with exit code: Key has expired
  3. QT5.9连接MySQL5.7解决QSqlDatabase: QMYSQL driver not loaded问题
  4. Linux oracle中文乱码的问题解决
  5. axios请求中跨域及post请求问题解决方案
  6. 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题
  7. 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099的解决办法
  8. 解决Mac Chrome打开HTTPS证书错误问题
  9. nginx实现动态分离,解决css和js等图片加载问题
  10. 一个由于springboot自动配置所产生的问题的解决