阅读 607

JSON转模型工具

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

在移动端开发中,JSON转模型总是绕不开的话题。

JSON有无数种,但是只要有一种快捷工具,就可以让你事半功倍,一键搞定。

今天就给大家介绍一下,我在开发中经常使用的JSON转模型工具吧。

quicktype

image.png

这是我目前用的最多的一个JSON转模型工具,主要用于Swift、Dart的转模型。当然它可以转换的语言非常丰富,大家可以按需选择。

其中对于Swift的转模型,是直接通过Codable协议进行转换,可以说十分的接地气,而且省时,并且转换的质量也非常好,推荐大家使用。

众所周知,由于Dart在Flutter中不允许使用反射,所以转模型基本上就是非常纯粹的Map通过键值对转换,quicktype当然转换的非常不错,但是针对Flutter开发有更锋利的工具。我往下会介绍。

quicktype另一个非常友好的地方在于,对Web网页、Mac、VSCode都有支持,大家可以根据自己的需求安装与使用。

quicktype网页

quicktype for Mac

quicktype for VSCode

JSONExport

quicktype之前,我一直都是使用这个软件做Swift中JSON转模型的:

image.png

可以看到相关的转模型选项,基本上都是涉及Apple开发端的转换,是一个比较单一的转换工具。

这个软件目前比较遗憾的就是自从2018年发布一个Release版本之后,就再也没有更新过了。

如果JSON的层级过深的话,也会转换出问题。

另外这个软件是用Swift编写的开源软件,大家要是喜欢的话,可以star一个喔。

JSONExport的GitHub

ModelEnd

其实针对OC中的JSON转模型,我个人比较推崇使用YYModel,原因有以下2点:

  • YYModel的耦合少,集成文件较少,通过YYModel协议可以说是面向协议的对模型进行了扩展。

  • YYModel的效率高,这点YY大神在文章就有进行对比,我就不用进行解释了。

但是,就我目前了解的工具中能够进行一步到位通过YYModel协议进行转模型的工具是没有的。

大多数转OC的模型后,我们都不得不删减代码,然后再遵守YYModel协议。

这个ModelEnd非常的纯粹,纯粹到只在.h中声明属性,没有其他任何方法声明,.m文件中一片空白:

image.png

正是这种纯粹,对于我们进行YYModel的改造避免了无意义的删除代码操作,加之代码块的快捷操作,我们能很快进行JSON转模型。

ModelEnd 网址

不过OC的JSON转模型,还是比Swift的Codable转模型的体验来的差。

FlutterJsonBeanFactory

这款插件非常适合进行Flutter开发中JSON转模型,通过脚本化,集中管理的方式,让管理模型、实现泛型向下统和基类模型成为了可能。

这款插件是基于AS进行安装与使用的。

image.png

FlutterJsonBeanFactory 插件网址

参考文档:

Swift:JSON解析(上)

Swift:JSON解析(下)

FlutterJsonBeanFactory插件json使用

总结

就目前的开发中我,我个人比较偏向使用quicktype进行JSON转模型,它的软件平台多,可以转换的编程语言也非常的广泛。

如果对于OC中使用YYModel进行转模型的话,ModelEnd推荐给大家。YYModel,OC中YYDS。

而进行Flutter开发的话,FlutterJsonBeanFactory是一款不错的JSON转Model插件。

我们下期见。

文章分类
iOS
文章标签