JSONModel简介(一)——读取并转化简单的本地JSON文件
来源:互联网 发布:股票书籍 知乎 编辑:程序博客网 时间:2024/05/16 08:47
做iOS开发的朋友,都要处理JSON文件,将其转化为Model。
这个过程是无疑是痛苦的。对于JSON数据量相对较少,或者Model里面的属性值较少的情况,处理起来不大费劲。但上架的应用大多是数据量巨大,与后台交互频繁的。更糟的是,后台接口频繁变化,那么维护起来就相当费劲了,因为你每次都要根据新的接口文档来逐一解释数据。往往每次要花你半天时间去修改、调试代码。
第三方工具——JSONModel正是为此而生!你只需要新建一个继承自JSONModel的Model类,然后挑选出你需要的属性字段,把它们逐一地在头文件中命名好即可。其它的转化工作你一概不用管,交给JSONModel吧。
以下面的JSON文件为例:
{ "data" : [ { "name" : "张三", "gender" : "male" }, { "name" : "李四", "gender" : "female" }, { "name" : "黄五", "gender" : "male" } ]}
步骤一:通过CocoaPod安装JSONModel。(不再赘述)
步骤二:搭建UITableViewCell、UITableViewController等代码。(不再赘述)
步骤三:写Model文件,只需写.h文件,.m文件不用写。
你只需新建一个继承自JSONModel的Model类,只写头文件如下即可:
#import <JSONModel/JSONModel.h>@protocol OneModel@end@interface OneModel : JSONModel@property (copy, nonatomic) NSString *name;@property (copy, nonatomic) NSString *gender;@end@interface Model : JSONModel@property (nonatomic, strong) NSArray<OneModel> *data;@end
这样组织数据的原因,是因为从JSON文档分析可知,data是一个NSArray,但每个数组元素本身又是一个字典,我把字典包装成一个OneModel,方便处理。这个步骤,从事iOS工作的朋友应该不难理解。
其它工作就是把data属性作为tableViewController的数据源即可。
步骤四:在UITableViewCell里重写setModel方法。
- (void)setOneModel:(OneModel *)oneModel{ _oneModel = oneModel; self.textLabel.text = oneModel.name; self.detailTextLabel.text = oneModel.gender;}
当然,我这里用的是setOneModel方法,因为OneModel才是我这个Cell的Model。而Model类则是代表整个JSON文件,所有我们认为有用的属性都写在Model里,但作为一个Cell的数据,则可能像我今次这样,只需一个Cell只需一个OneModel。
有兴趣的朋友,建议百度一下JSONModel的详细资料,要快速上手,下载我的代码即可。
0 0
- JSONModel简介(一)——读取并转化简单的本地JSON文件
- 读取本地JSON文件并显示
- 读取本地JSON文件并显示
- 读取本地json文件
- android 读取本地的json文件
- java 读取本地的json文件
- 【JSON】读取json文件(一)
- 本地 json 文件的简单处理
- java读取xlsx并转化json数据
- 本地 json文件转化成plist文件
- 从本地读取json文件
- JavaScript读取本地json文件
- JQuery读取本地Json文件
- JQuery读取本地JSON文件
- JQuery读取本地JSON文件
- JQuery读取本地json文件
- angular4读取本地json文件
- iOS 读取本地JSON文件
- 第五天,uiscorllview的滚动和缩放,以及代理调用,定时器,对话框
- Linux tar 命令
- OCiOS开发:表格视图实现腾讯好友列表展开收缩效果
- leetcode笔记:Range Sum Query - Immutable
- Android_程序退出_关闭所有activity代码
- JSONModel简介(一)——读取并转化简单的本地JSON文件
- 响应函数(响应机制)——高版本与低版本之间的差异!!
- OC - @property与setter,getter方法
- TranslateAnimation详解
- jquyer 表单 屏蔽回车,自动跳转到下个文本框!
- 微信公共号开发简单入门
- asp.net Session丢失的解决办法小结
- 模拟jdk 动态编译
- 面试笔试 ----- 广州易幻Android(未通过)