dart flutter json 转 model 常用库对比 json_serializable json_model JsonToDart
最佳答案 问答题库488位专家为你答疑解惑
1.对比
我是一个初学者,一直跟着教材用原生的json,最近发现实在太麻烦了.所以搜索了一下,发现真的有很多现成的解决方案.
json_serializable这是推荐最多的,也是 pub.dev likes最多的,
优点:
1.可以 识别 key 和 dart代码中的"name" 不相同的代码, 例如 {"name":"姓名"} 把 name 改为 dart中的 变量 name2
2.可以使用 命令行自动生成
缺点:
书写 model 麻烦.不能直接从json 生成 dart model
依赖 json_annotation(暂且算一个缺点把)
json_model一个命令行工具,用于从json 生成json_annotation 的model 文件
作者是 <Flutter实战·第二版> 的作者,估计是为了配合 写书,所以只有1.0版本,但是书中有代码说明,自己修改的话估计比较容易
优点: 支持多种格式(比如 类型 数组 以及 List<自定义类型> 注释 引入dart文件 等)
缺点:
{"bbb": {"bbb1": 10,"bbb2": 20}}会被识别为 Map<String, int>
需要 改写为 {"bbb":"$[]bbb"} 然后再自定义一个 bbb的model
JsonToDart有两个,其中一个下载量很大的不支持 Android Studio,只支持 JetBrains(要花钱买)
我只测试了 支持 Android Studio.
缺点:
生成代码的时候 需要手动capy 代码到编辑框中(和使用网页差不多).
同样{"bbb": {"bbb1": 10,"bbb2": 20},"friends":[{"name": "中文","age": 10}]}
bbb会被识别为 Map<String, int> ,
friends可以正常转换为 List<Friend> 命名还是比较舒服的
优点:
代码不依赖 其他库
网页1https://caijinglong.github.io/json2dart/index_ch.html
生成 json_serializable 代码
{"bbb": {"bbb1": 10,"bbb2": 20},"friends":[{"name": "中文","age": 10}]} 都能识别为 model
缺点:
friends 不会识别为 friend(无法识别英文复数)
需要手动复制代码到网页框
依赖 json_serializable 还需要再次build
网页2https://jsontodart.zariman.dev/
https://github.com/shiburagi/JsonToDart
这个好像支持 vs code 插件.
优点:
生成的代码不依赖其他库
{"bbb": {"bbb1": 10,"bbb2": 20},"friends":[{"name": "中文","age": 10}]} 都能识别为 model
缺点:
friends 不会识别为 friend(无法识别英文复数)
需要手动复制代码到网页框
2.结论
不依赖 json_serializable 的方案 在 json 和 model 不完全一致(比如key名字不一样)的情况比较麻烦,
大部分方案都不方便写注释,如果在生成的代码中写注释,下次修改json 就是个麻烦.
json_model,写注释也不是很方便
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"dart flutter json 转 model 常用库对比 json_serializable json_model JsonToDart":http://eshow365.cn/6-14014-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: uni-app使用HBuilder X编辑器本地打包apk步骤说明
- 下一篇: 9.20华为机试-后端