zoukankan      html  css  js  c++  java
  • JSONModel简介(一)——读取并转化简单的本地JSON文件

    做iOS开发的朋友,都要处理JSON文件,将其转化为Model。

    这个过程是无疑是痛苦的。对于JSON数据量相对较少,或者Model里面的属性值较少的情况,处理起来不大费劲。但上架的应用大多是数据量巨大,与后台交互频繁的。更糟的是,后台接口频繁变化,那么维护起来就相当费劲了,因为你每次都要根据新的接口文档来逐一解释数据。往往每次要花你半天时间去修改、调试代码。

    第三方工具——JSONModel正是为此而生!你只需要新建一个继承自JSONModel的Model类,然后挑选出你需要的属性字段,把它们逐一地在头文件中命名好即可。其它的转化工作你一概不用管,交给JSONModel吧。

    以下面的JSON文件为例:

     1 {
     2     "data" : [
     3                     {
     4                         "name" : "张三",
     5                         "gender" : "male"
     6                     },
     7                     {
     8                         "name" : "李四",
     9                         "gender" : "female"
    10                     },
    11                     {
    12                         "name" : "黄五",
    13                         "gender" : "male"
    14                     }
    15                 ]
    16 }

    步骤一:通过CocoaPod安装JSONModel。(不再赘述)

    步骤二:搭建UITableViewCell、UITableViewController等代码。(不再赘述)

    步骤三:写Model文件,只需写.h文件,.m文件不用写。

    你只需新建一个继承自JSONModel的Model类,只写头文件如下即可:

     1 #import <JSONModel/JSONModel.h>
     2 
     3 @protocol OneModel
     4 @end
     5 
     6 @interface OneModel : JSONModel
     7 
     8 @property (copy, nonatomic) NSString *name;
     9 @property (copy, nonatomic) NSString *gender;
    10 
    11 @end
    12 
    13 
    14 @interface Model : JSONModel
    15 
    16 @property (nonatomic, strong) NSArray<OneModel> *data;
    17 
    18 @end

    这样组织数据的原因,是因为从JSON文档分析可知,data是一个NSArray,但每个数组元素本身又是一个字典,我把字典包装成一个OneModel,方便处理。这个步骤,从事iOS工作的朋友应该不难理解。

    其它工作就是把data属性作为tableViewController的数据源即可。

    步骤四:在UITableViewCell里重写setModel方法。

    1 - (void)setOneModel:(OneModel *)oneModel{
    2     _oneModel = oneModel;
    3     
    4     self.textLabel.text = oneModel.name;
    5     self.detailTextLabel.text = oneModel.gender;
    6 }

    当然,我这里用的是setOneModel方法,因为OneModel才是我这个Cell的Model。而Model类则是代表整个JSON文件,所有我们认为有用的属性都写在Model里,但作为一个Cell的数据,则可能像我今次这样,一个Cell只需一个OneModel。

    有兴趣的朋友,建议百度一下JSONModel的详细资料,要快速上手,下载我的代码即可。

    JSONModel.zip

  • 相关阅读:
    线程同步的三种方式(Mutex,Event,Critical Section) 沧海
    VC++多线程下内存操作的优化 沧海
    C++内存对象大会战 沧海
    技术关注:搜索引擎经验 沧海
    jira 3.13.5版 安装 配置 用户权限控制 拂晓风起
    C++ int string 转换 拂晓风起
    C++调用C链接库会出现的问题 拂晓风起
    Windows Server 2003 IIS Service Unavailable 问题解决 拂晓风起
    研究 学术 开发 的好用工具(不包括常见的) 拂晓风起
    SGMarks 问世 (Firefox扩展Gmarks的扩展版) 纯属学习 拂晓风起
  • 原文地址:https://www.cnblogs.com/billios/p/5147043.html
Copyright © 2011-2022 走看看