博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JsonModel的使用(ios程序员必须熟练掌握,太激动了)
阅读量:5057 次
发布时间:2019-06-12

本文共 2376 字,大约阅读时间需要 7 分钟。

demo下载:https://github.com/MartinLi841538513/JsonModelDemo2

简单说,就是dictionary to model.  专业一些就是:解析json数据。

可以为您省下大量的代码,时间,精力,还能提高准确度。

操作步骤:

一,引入JsonModel :这里我使用了pods, pod 'JSONModel'

二,对应url建立model,如:http://semantictec.com/tec/api/mm/category?source=sears&agent=123&client=ios

 

这里必然需要建立2个model:一个是category,一个是self。

这里我贴代码进来吧,大家注意看:

Cat.h

注意:1,继承JSONModel

     2,创建Cat协议

        3,实现所有或者部分对应属性(命名必须和Json属性名一模一样)

#import "JSONModel.h"@protocol Cat @end@interface Cat : JSONModel@property (strong, nonatomic) NSString* id;@property (strong, nonatomic) NSString* name;@property (assign, nonatomic) long products;@end

 

UserModel.h

注意:1,继承JSONModel

     2,实现所有或者部分对应属性

     3,对应到categories属性的地方,做如下处理

#import 
#import "Cat.h"@interface UserModel : JSONModel@property (strong, nonatomic) NSString* source;@property (strong, nonatomic) NSString* agent;@property (strong, nonatomic) NSString* client;@property (strong, nonatomic) NSArray
* categories;@end

 

三,开始发送请求获取数据了

#import "ViewController.h"#import "UserModel.h"#import "JSONModelLib.h"@interface ViewController (){    UserModel *userModel;}@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.    userModel = [[UserModel alloc] initFromURLWithString:@"http://semantictec.com/tec/api/mm/category?source=sears&agent=123&client=ios" completion:^(UserModel *model, JSONModelError *err) {                    NSLog(@"loans: %@",userModel);            NSLog(@"%@",model);    }];}

1,import :XXXModel.h   JSONModelLib.h

2,这里以initFromURLWithString:请求数据为例(还有很多其他的方法)。

这里提供两种获取数据的方式:这里的userModel,model是一样的数据,你可以根据实际情况选择一种。

 

 

在上面的例子中,你添加了两个jsonModel类,如果还有三级,四级分类,是不是要添加更多。这样无疑也是麻烦的,而且浪费了一些资源。

其实,后来仔细想想,他们原理上是可以放在一个.h .m文件中的。后面我用实例证明了我的说法:

.h

#import 
@protocol Cat @end@interface Cat : JSONModel@property (strong, nonatomic) NSString* id;@property (strong, nonatomic) NSString* name;@property (assign, nonatomic) long products;@end@interface UserModel : JSONModel@property (strong, nonatomic) NSString* source;@property (strong, nonatomic) NSString* agent;@property (strong, nonatomic) NSString* client;@property (strong, nonatomic) NSArray
* categories;@end

 

.m

#import "UserModel.h"@implementation Cat@end@implementation UserModel@end

 

转载于:https://www.cnblogs.com/MartinLi841538513/p/3936952.html

你可能感兴趣的文章
lunux开放80端口(本地访问不了linux文件可能是这个原因)
查看>>
strcpy 、 strlen 、strcat 函数的实现
查看>>
Dreammail V4.6.9.2 XSS漏洞利用
查看>>
内联函数和函数重载
查看>>
【原】unity3d刀光闪过
查看>>
Centos下搭建nginx反向代理
查看>>
javascript学习笔记(window .alert 是什么)
查看>>
纯CSS写三角形-border法[晋级篇01]
查看>>
类前缀
查看>>
MySQL ALTER命令
查看>>
MySQL SQL 注入
查看>>
复杂密码生成工具apg
查看>>
Linux下动态库的使用
查看>>
Flex AIR自定义Mobile的弹出框组件
查看>>
BZOJ3226: [Sdoi2008]校门外的区间
查看>>
linux终端下一些“风骚”的按键操作及Linux终端命令
查看>>
Luogu4423 BJWC2011 最小三角形 平面最近点对
查看>>
CF1039D You Are Given a Tree 根号分治、二分、贪心
查看>>
(十四)WebGIS中地图放大缩小的设计和实现
查看>>
团队-UML
查看>>