IOS MJExtension json轉模型的輕量級框架的使用


框架下載地址是:

 

 

 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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM