作为一个优秀的程序员,或者想成为优秀的程序员,最基本的你得有MVC编程思想,那么你就要对JSON获取的数据建Model,将service和controller层都分离,从而做到低耦合。现在有很多利用runtime能快速的将json数据转为一个Model。但是我在做项目的时候,发现创建Model(特别是属性特多的)写属性代码很浪费时间,降低了编程效率。后来我自己就写了个好玩的能省去时间创建Model的一个“土八路”方法。下面上代码:
打印出来:
在控制台就看到已经将字典的字段全部创建好属性,然后把它直接复制到对应Model.h文件就OK了,一个多属性的Model就这样创建好了。
我记得在cocoaChina上有个插件:iOS_Spring 也可以实现自动创建Model.有兴趣的朋友可以试试。
欢迎大家讨论,指出不足的地方,当然你们有更好的方法也可以告诉我。谢谢!(不喜勿喷)
网友评论
1.ESJsonFormatForMac生成文件在创建类名时需要手动确认每一个类名(且并不能判断类名是否已存在)。而且,使用ZZJsonToModel的GitHub主页的json生成文件时,对于特殊数组的处理会损失数据。
2.ZZJsonToModel可以判断重复的类名,有效防止类名冲突产生的崩溃。
3.Xcode打印出的json数据,部分key字段没有双引号,粘贴出去也不是json格式。ZZJsonToModel的创建,主要就是因为xcode打印的json无法直接使用,所以才直接接收请求数据。
4.ZZJsonToModel在后期会添加json数据管理功能,在json数据中key产生变化时,可以管理key(省去请求数据后粘贴json的步骤)。
以下我觉得可以改进或参考的地方,个人意见
1. 生成的文件还要自己去打开文件夹再拖进来,这里就多了一步,ESJsonFormatForMac是直接生成完就打开(要是能有办法可以配置下直接生成导进项目就真的完美了!这是我认为在Model文件处理这种方式是最终形态,可惜这个除了xcode插件应该做不了这个,毕竟直接脚本拷贝文件进去是没有文件索引的,显示不出来)
2. 不过仔细看了一下,你这个应用场景是: 网络接口写好了-》添加生成model文件代码-》打开文件夹-》拖文件进项目工程-》删除生成Model文件代码, 单从添加生成代码就有点侵入性了,个人感觉会更偏向于外部独立,ESJsonFormatForMac的应用场景是:网络接口写好了-》打印返回数据-》复制粘贴json数据-》点击生成文件然后自动弹出文件夹并选中文件-》拖进项目,这种方式个人感觉效率会更高一些