Android使用json数据模型,IOS MJExtension json转模型的轻量级框架的使用

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 

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值