MJExtension字典和模型之间相互转换的轻量级框架的使用实例
来源:互联网 发布:sopcast2016地址源码 编辑:程序博客网 时间:2024/05/17 16:56
框架下载地址是:
https://github.com/makeLaugh/MJExtension
这边主要的一个示例是将一个从web上面取到的json字符窜转化成model的一个流程,开始集成吧。
1)下载解压
2)添加到新的项目中
3)导入头文件后,开始使用这个文件,这边是从web上面取得的一个数据,直接映射成一个model对象
这里只是其中的一个使用方法,更多的方法可以查看其下载文件中的main方便中的更加详细的调用 。
//
// main.m
// 字典与模型的互转
//
// Created by MJ Lee on 14-5-21.
// Copyright (c) 2014年 itcast. All rights reserved.
//
/**
MJ友情提醒:
1.MJExtension是一套“字典和模型之间互相转换”的轻量级框架
2.MJExtension能完成的功能
* 字典 --> 模型
* 模型 --> 字典
* 字典数组 --> 模型数组
* 模型数组 --> 字典数组
3.具体用法主要参考 main.m中各个函数 以及 "NSObject+MJKeyValue.h"
4.希望各位大神能用得爽
*/
#import <Foundation/Foundation.h>
#import "MJExtension.h"
#import "User.h"
#import "Status.h"
#import "StatusResult.h"
/**
* 简单的字典 -> 模型
*/
void keyValues2object()
{
// 1.定义一个字典
NSDictionary *dict = @{
@"name" :@"Jack",
@"icon" :@"lufy.png",
};
// 2.将字典转为User模型
User *user = [User objectWithKeyValues:@"44"];
// 3.打印User模型的属性
NSLog(@"name=%@, icon=%@", user.name, user.icon);
}
/**
* 复杂的字典 -> 模型 (模型里面包含了模型)
*/
void keyValues2object2()
{
// 1.定义一个字典
NSDictionary *dict = @{
@"text" :@"是啊,今天天气确实不错!",
@"user" : @{
@"name" :@"Jack",
@"icon" :@"lufy.png"
},
@"retweetedStatus" : @{
@"text" :@"今天天气真不错!",
@"user" : @{
@"name" :@"Rose",
@"icon" :@"nami.png"
}
}
};
// 2.将字典转为Status模型
Status *status = [Status objectWithKeyValues:dict];
// 3.打印status的属性
NSString *text = status.text;
NSString *name = status.user.name;
NSString *icon = status.user.icon;
NSLog(@"text=%@, name=%@, icon=%@", text, name, icon);
// 4.打印status.retweetedStatus的属性
NSString *text2 = status.retweetedStatus.text;
NSString *name2 = status.retweetedStatus.user.name;
NSString *icon2 = status.retweetedStatus.user.icon;
NSLog(@"text2=%@, name2=%@, icon2=%@", text2, name2, icon2);
}
/**
* 复杂的字典 -> 模型 (模型的数组属性里面又装着模型)
*/
void keyValues2object3()
{
// 1.定义一个字典
NSDictionary *dict = @{
@"statuses" : @[
@{
@"text" :@"今天天气真不错!",
@"user" : @{
@"name" :@"Rose",
@"icon" :@"nami.png"
}
},
@{
@"text" :@"明天去旅游了",
@"user" : @{
@"name" :@"Jack",
@"icon" :@"lufy.png"
}
},
@{
@"text" :@"嘿嘿,这东西不错哦!",
@"user" : @{
@"name" :@"Jim",
@"icon" :@"zero.png"
}
}
],
@"totalNumber" :@"2014",
@"previousCursor" :@"13476589",
@"nextCursor" :@"13476599"
};
// 2.将字典转为StatusResult模型
StatusResult *result = [StatusResult objectWithKeyValues:dict];
// 3.打印StatusResult模型的简单属性
NSLog(@"totalNumber=%d, previousCursor=%lld, nextCursor=%lld", result.totalNumber, result.previousCursor, result.nextCursor);
// 4.打印statuses数组中的模型属性
for (Status *status in result.statuses) {
NSString *text = status.text;
NSString *name = status.user.name;
NSString *icon = status.user.icon;
NSLog(@"text=%@, name=%@, icon=%@", text, name, icon);
}
}
/**
* 字典数组 -> 模型数组
*/
void keyValuesArray2objectArray()
{
// 1.定义一个字典数组
NSArray *dictArray = @[
@{
@"name" :@"Jack",
@"icon" :@"lufy.png",
},
@{
@"name" :@"Rose",
@"icon" :@"nami.png",
},
@{
@"name" :@"Jim",
@"icon" :@"zero.png",
}
];
// 2.将字典数组转为User模型数组
NSArray *userArray = [User objectArrayWithKeyValuesArray:dictArray];
// 3.打印userArray数组中的User模型属性
for (User *user in userArray) {
NSLog(@"name=%@, icon=%@", user.name, user.icon);
}
}
/**
* 模型 -> 字典
*/
void object2keyValues()
{
// 1.新建模型
User *user = [[User alloc] init];
user.name = @"Jack";
user.icon = @"lufy.png";
Status *status = [[Status alloc] init];
status.user = user;
status.text = @"今天的心情不错!";
// 2.将模型转为字典
// NSDictionary *dict = [status keyValues];
NSDictionary *dict = status.keyValues;
NSLog(@"%@", dict);
}
/**
* 模型数组 -> 字典数组
*/
void objectArray2keyValuesArray()
{
// 1.新建模型数组
User *user1 = [[User alloc] init];
user1.name = @"Jack";
user1.icon = @"lufy.png";
User *user2 = [[User alloc] init];
user2.name = @"Rose";
user2.icon = @"nami.png";
User *user3 = [[User alloc] init];
user3.name = @"Jim";
user3.icon = @"zero.png";
NSArray *userArray = @[user1, user2, user3];
// 2.将模型数组转为字典数组
NSArray *dictArray = [User keyValuesArrayWithObjectArray:userArray];
NSLog(@"%@", dictArray);
}
int main(int argc,const char * argv[])
{
@autoreleasepool {
// 简单的字典 -> 模型
//keyValues2object();
// 复杂的字典 -> 模型 (模型里面包含了模型)
keyValues2object2();
// 复杂的字典 -> 模型 (模型的数组属性里面又装着模型)
// keyValues2object3();
// 字典数组 -> 模型数组
// keyValuesArray2objectArray();
// 模型转字典
// object2keyValues();
// 模型数组 -> 字典数组
//objectArray2keyValuesArray();
}
return 0;
}
// main.m
// 字典与模型的互转
//
// Created by MJ Lee on 14-5-21.
// Copyright (c) 2014年 itcast. All rights reserved.
//
/**
MJ友情提醒:
1.MJExtension是一套“字典和模型之间互相转换”的轻量级框架
2.MJExtension能完成的功能
* 字典 --> 模型
* 模型 --> 字典
* 字典数组 --> 模型数组
* 模型数组 --> 字典数组
3.具体用法主要参考 main.m中各个函数 以及 "NSObject+MJKeyValue.h"
4.希望各位大神能用得爽
*/
#import <Foundation/Foundation.h>
#import "MJExtension.h"
#import "User.h"
#import "Status.h"
#import "StatusResult.h"
/**
* 简单的字典 -> 模型
*/
void keyValues2object()
{
// 1.定义一个字典
NSDictionary *dict = @{
@"name" :@"Jack",
@"icon" :@"lufy.png",
};
// 2.将字典转为User模型
User *user = [User objectWithKeyValues:@"44"];
// 3.打印User模型的属性
NSLog(@"name=%@, icon=%@", user.name, user.icon);
}
/**
* 复杂的字典 -> 模型 (模型里面包含了模型)
*/
void keyValues2object2()
{
// 1.定义一个字典
NSDictionary *dict = @{
@"text" :@"是啊,今天天气确实不错!",
@"user" : @{
@"name" :@"Jack",
@"icon" :@"lufy.png"
},
@"retweetedStatus" : @{
@"text" :@"今天天气真不错!",
@"user" : @{
@"name" :@"Rose",
@"icon" :@"nami.png"
}
}
};
// 2.将字典转为Status模型
Status *status = [Status objectWithKeyValues:dict];
// 3.打印status的属性
NSString *text = status.text;
NSString *name = status.user.name;
NSString *icon = status.user.icon;
NSLog(@"text=%@, name=%@, icon=%@", text, name, icon);
// 4.打印status.retweetedStatus的属性
NSString *text2 = status.retweetedStatus.text;
NSString *name2 = status.retweetedStatus.user.name;
NSString *icon2 = status.retweetedStatus.user.icon;
NSLog(@"text2=%@, name2=%@, icon2=%@", text2, name2, icon2);
}
/**
* 复杂的字典 -> 模型 (模型的数组属性里面又装着模型)
*/
void keyValues2object3()
{
// 1.定义一个字典
NSDictionary *dict = @{
@"statuses" : @[
@{
@"text" :@"今天天气真不错!",
@"user" : @{
@"name" :@"Rose",
@"icon" :@"nami.png"
}
},
@{
@"text" :@"明天去旅游了",
@"user" : @{
@"name" :@"Jack",
@"icon" :@"lufy.png"
}
},
@{
@"text" :@"嘿嘿,这东西不错哦!",
@"user" : @{
@"name" :@"Jim",
@"icon" :@"zero.png"
}
}
],
@"totalNumber" :@"2014",
@"previousCursor" :@"13476589",
@"nextCursor" :@"13476599"
};
// 2.将字典转为StatusResult模型
StatusResult *result = [StatusResult objectWithKeyValues:dict];
// 3.打印StatusResult模型的简单属性
NSLog(@"totalNumber=%d, previousCursor=%lld, nextCursor=%lld", result.totalNumber, result.previousCursor, result.nextCursor);
// 4.打印statuses数组中的模型属性
for (Status *status in result.statuses) {
NSString *text = status.text;
NSString *name = status.user.name;
NSString *icon = status.user.icon;
NSLog(@"text=%@, name=%@, icon=%@", text, name, icon);
}
}
/**
* 字典数组 -> 模型数组
*/
void keyValuesArray2objectArray()
{
// 1.定义一个字典数组
NSArray *dictArray = @[
@{
@"name" :@"Jack",
@"icon" :@"lufy.png",
},
@{
@"name" :@"Rose",
@"icon" :@"nami.png",
},
@{
@"name" :@"Jim",
@"icon" :@"zero.png",
}
];
// 2.将字典数组转为User模型数组
NSArray *userArray = [User objectArrayWithKeyValuesArray:dictArray];
// 3.打印userArray数组中的User模型属性
for (User *user in userArray) {
NSLog(@"name=%@, icon=%@", user.name, user.icon);
}
}
/**
* 模型 -> 字典
*/
void object2keyValues()
{
// 1.新建模型
User *user = [[User alloc] init];
user.name = @"Jack";
user.icon = @"lufy.png";
Status *status = [[Status alloc] init];
status.user = user;
status.text = @"今天的心情不错!";
// 2.将模型转为字典
// NSDictionary *dict = [status keyValues];
NSDictionary *dict = status.keyValues;
NSLog(@"%@", dict);
}
/**
* 模型数组 -> 字典数组
*/
void objectArray2keyValuesArray()
{
// 1.新建模型数组
User *user1 = [[User alloc] init];
user1.name = @"Jack";
user1.icon = @"lufy.png";
User *user2 = [[User alloc] init];
user2.name = @"Rose";
user2.icon = @"nami.png";
User *user3 = [[User alloc] init];
user3.name = @"Jim";
user3.icon = @"zero.png";
NSArray *userArray = @[user1, user2, user3];
// 2.将模型数组转为字典数组
NSArray *dictArray = [User keyValuesArrayWithObjectArray:userArray];
NSLog(@"%@", dictArray);
}
int main(int argc,const char * argv[])
{
@autoreleasepool {
// 简单的字典 -> 模型
//keyValues2object();
// 复杂的字典 -> 模型 (模型里面包含了模型)
keyValues2object2();
// 复杂的字典 -> 模型 (模型的数组属性里面又装着模型)
// keyValues2object3();
// 字典数组 -> 模型数组
// keyValuesArray2objectArray();
// 模型转字典
// object2keyValues();
// 模型数组 -> 字典数组
//objectArray2keyValuesArray();
}
return 0;
}
0 0
- MJExtension字典和模型之间相互转换的轻量级框架的使用实例
- MJExtension使用,数据跟模型之间的相互转换
- MJExtension轻量级框架的使用
- JSON和模型之间最快捷方便的转换iOS框架:MJExtension
- JSON和模型之间的转换(CoderMJLee/MJExtension)
- MJExtension 2.0 字典转模型再叙 常用的字典转模型使用实例说明
- 模型转换工具Mantle, MJExtension, JSONModel的使用和异同
- 模型转换工具Mantle, MJExtension, JSONModel的使用和异同
- MJExtension字典转模型开源框架使用以及遇到的问题
- MJExtension 框架的使用
- 模型转换工具 Mantle, MJExtension, JSONModel 的使用和异同及防崩溃能力比较
- MJExtension与模型的快速转换
- 关于原生态和框架之间的相互转换
- MJExtension,模型、字典、json数据转换
- IOS 字典模型互转框架 MJExtension
- 实例:常用数据类型之间的相互转换
- 实例对象和字典的相互转化
- MJExtension 字典转模型高级使用技巧
- C++——运算符重载(一),入门篇
- linux 查询文件大小
- Android技能学习
- Eclipse使用小技巧——备忘
- js解决onkeydown长按按键卡顿一下
- MJExtension字典和模型之间相互转换的轻量级框架的使用实例
- New package not yet registered with the system. Waiting 3 seconds before next attempt
- Java第四周常用类与集合框架之接口+抽象类9-9
- linux 下面清除历史纪录的方法
- Python 代码风格和PEP8
- 仿淘宝,自定义ViewGroup实现自动换行布局
- vim配置YCM
- Android的Style的使用和用处
- 第一次只出现一次的字符