Object-C_Mantle,MJExtension,YYKit转换性能对比

1.代码自测对比数据转换效率

2016-08-17 17:53:15.109 JSON转Model库测试[20296:325871] ===============YYModel=======================
2016-08-17 17:53:15.143 JSON转Model库测试[20296:325871] || 循环次数:10
2016-08-17 17:53:15.143 JSON转Model库测试[20296:325871] || 总时间 :32.869385毫秒
2016-08-17 17:53:15.143 JSON转Model库测试[20296:325871] || 平均装换时间:3.286938

2016-08-17 17:53:15.144 JSON转Model库测试[20296:325871] ===============Mantle=======================
2016-08-17 17:53:15.883 JSON转Model库测试[20296:325871] || 循环次数:10
2016-08-17 17:53:15.883 JSON转Model库测试[20296:325871] || 总时间 :738.798340毫秒
2016-08-17 17:53:15.883 JSON转Model库测试[20296:325871] || 平均装换时间:73.879834

2016-08-17 17:53:15.883 JSON转Model库测试[20296:325871] ===============MJExtersion==================
2016-08-17 17:53:16.263 JSON转Model库测试[20296:325871] || 循环次数:10
2016-08-17 17:53:16.263 JSON转Model库测试[20296:325871] || 总时间 :379.388916毫秒
2016-08-17 17:53:16.263 JSON转Model库测试[20296:325871] || 平均装换时间:37.938892

专家评测数据图

Object-C_Mantle,MJExtension,YYKit转换性能对比_第1张图片
JSON转Model.png

2.代码

测试库版本

pod 'YYKit', '~> 1.0.7'
pod 'Mantle', '~> 2.0.6'
pod 'MJExtension', '~> 3.0.13'

1.使用测试代码


- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSInteger cycleTimes       = 10;//循环次数
    NSTimeInterval totleTime   = 0;//总时间
    NSTimeInterval averageTime = 0;//平均时间
    NSTimeInterval _timeStart;
    NSTimeInterval _timeEnd;
    
    NSDictionary *jsonData = [NSDictionary dictionaryWithContentsOfFile:@"/Users/Jonkey/Desktop/DemoSets/JSON转Model库测试/JSON转Model库测试/DataSource.plist"];
    //NSLog(@"%@",jsonData);

    NSLog(@"===============YYModel=======================");
    for (int i = 0; i < cycleTimes ; i++) {
        _timeStart = [self getCurSystemTimeInterval];
        SaleEstateYYModelEntity *saleEntity = [SaleEstateYYModelEntity yy_modelWithJSON:jsonData];
        _timeEnd   = [self  getCurSystemTimeInterval];
        //NSLog(@"YYModel转换时间: %f毫秒",_timeEnd -  _timeStart);
        totleTime  += _timeEnd -  _timeStart;
    }
    averageTime = totleTime/cycleTimes;
    NSLog(@"|| 循环次数:%lu",cycleTimes);
    NSLog(@"|| 总时间 :%f毫秒",totleTime);
    NSLog(@"|| 平均装换时间:%f\n\n",averageTime);

    /*******************************************************/
    
    NSLog(@"===============Mantle=======================");
    totleTime = 0;
    for (int i = 0; i < cycleTimes ; i++) {
        _timeStart = [self getCurSystemTimeInterval];
        SaleEstateMantleEntity *saleEntity = [MTLJSONAdapter modelOfClass:[SaleEstateMantleEntity class]
                                                       fromJSONDictionary:jsonData
                                                                    error:nil];
        _timeEnd   = [self  getCurSystemTimeInterval];
        //NSLog(@"Mantle转换换时间: %f毫秒",_timeEnd -  _timeStart);
        totleTime  += _timeEnd -  _timeStart;
    }
    averageTime = totleTime/cycleTimes;
    NSLog(@"|| 循环次数:%lu",cycleTimes);
    NSLog(@"|| 总时间 :%f毫秒",totleTime);
    NSLog(@"|| 平均装换时间:%f\n\n",averageTime);
    
    /*******************************************************/
    
    NSLog(@"===============MJExtersion==================");
    totleTime = 0;
    for (int i = 0; i < cycleTimes ; i++) {
        _timeStart = [self getCurSystemTimeInterval];
        SaleEstateMJEntity *saleEntity = [SaleEstateMJEntity mj_objectWithKeyValues:jsonData];
        _timeEnd   = [self  getCurSystemTimeInterval];
        //NSLog(@"MJExtersion转换换时间: %f毫秒",_timeEnd -  _timeStart);
        totleTime  += _timeEnd -  _timeStart;
    }
    averageTime = totleTime/cycleTimes;
    NSLog(@"|| 循环次数:%lu",cycleTimes);
    NSLog(@"|| 总时间 :%f毫秒",totleTime);
    NSLog(@"|| 平均装换时间:%f\n\n",averageTime);
}

///获取当前时间的时间戳(毫秒)
- (NSTimeInterval)getCurSystemTimeInterval{
    NSTimeInterval dateInterval = [[NSDate date] timeIntervalSince1970] * 1000;
    return dateInterval;
}

YYModel测试的NSObject类型的代码

====================.h====================
#import 

@interface SaleResultEntity : NSObject

@property (nonatomic,assign) BOOL IsFollow;//是否跟盘
@property (nonatomic,assign) BOOL IsSole;//是否独家
@property (nonatomic,assign) BOOL IsOnline;//是否外网展示
@property (nonatomic,assign) BOOL RotatedIn;//是否一盘一处
@property (nonatomic,assign) BOOL IsAnyTimeSee;//是否随时可看(钥匙)
@property (nonatomic,assign) BOOL IsTop;//是否置顶
@property (nonatomic,assign) BOOL IsHot;//是否热盘
@property (nonatomic,assign) BOOL IsManWu;//是否满五年
@property (nonatomic,assign) BOOL IsManEr;//是否满二年
@property (nonatomic,assign) BOOL IsOnly;//是否唯一
@property (nonatomic,assign) BOOL IsKeys;//是否有钥匙
@property (nonatomic,assign) BOOL IsMetro;//是否地铁房
@property (nonatomic,assign) BOOL IsSchool;//是否学区
@property (nonatomic,assign) BOOL IsManager;//是否经理推荐
@property (nonatomic,assign) BOOL isRegion;//是否区域推荐
@property (nonatomic,assign) BOOL isExclusive;//是否新增独家人
@property (nonatomic,assign) BOOL IsJiShou;//是否急售(限时出售)
@property (nonatomic,assign) BOOL IsDel;//是否删除
@property (nonatomic,assign) BOOL Label1;//预留标签1
@property (nonatomic,assign) BOOL Label2;//是否含有视频
@property (nonatomic,assign) BOOL Label3;//预留标签3
@property (nonatomic,assign) BOOL Label4;//预留标签4
@property (nonatomic,assign) BOOL Label5;//预留标签5

@property (nonatomic,assign) double SalePrice;//售价
@property (nonatomic,assign) double UnitSalePrice;//单价
@property (nonatomic,assign) double RentPrice;//租价
@property (nonatomic,assign) double GArea;//建筑面积
@property (nonatomic,assign) double Lat;
@property (nonatomic,assign) double Lng;

@property (nonatomic,strong) NSString *PostId;//房源ID
@property (nonatomic,strong) NSString *AgencyPropId;//agency房源id
@property (nonatomic,strong) NSString *PostType;//租售类型 S:租 R:售 B:租售
@property (nonatomic,strong) NSString *EstateName;//小区名称
@property (nonatomic,strong) NSString *EstateCode;//小区code
@property (nonatomic,strong) NSString *Address;//楼盘地址
@property (nonatomic,strong) NSString *Title;//房源标题
@property (nonatomic,strong) NSString *Keywords;//关键字
@property (nonatomic,strong) NSString *EstateImageUrl;//房源默认图片路径
@property (nonatomic,strong) NSString *Direction;//朝向
@property (nonatomic,strong) NSString *TencentVistaUrl;//腾讯街景
@property (nonatomic,strong) NSString *Fitment;//装修情况
@property (nonatomic,strong) NSString *RegionName;//区域名称
@property (nonatomic,strong) NSString *GscopeName;//板块名称
@property (nonatomic,strong) NSString *FloorDisplay;//显示楼层

@property (nonatomic,assign) NSInteger RoomCount;//房间数
@property (nonatomic,assign) NSInteger HallCount;//客厅数
@property (nonatomic,assign) NSInteger ToiletCount;//卫浴数
@property (nonatomic,assign) NSInteger BalconyCount;//阳台数
@property (nonatomic,assign) NSInteger KitchenCount;//厨房数
@property (nonatomic,assign) NSInteger RegionId;//区域id
@property (nonatomic,assign) NSInteger GscopeId;//板块id
@property (nonatomic,assign) NSInteger EstateSimilarPostsCnt;//小区同价位房源数量
@property (nonatomic,assign) NSInteger RegionSimilarPostsCnt;//周边同价位房源数量
@property (nonatomic,assign) NSInteger Floor;//所在楼层
@property (nonatomic,assign) NSInteger FloorTotal;//总楼层
@property (nonatomic,assign) NSTimeInterval OpDate;//建造年代

@property (nonatomic, copy)NSString *RentType;// 租房类型(整租/合租)
@property (nonatomic, copy)NSString *RentPayType;// 房租支付方式

@property (nonatomic, copy)NSString *MatchSchoolsName;//对口学校名称拼接字符串 以英文逗号分隔(,);
@property (nonatomic, assign)BOOL IsHasDealData;//是否成交
@property (nonatomic, strong)NSArray *RailWayInfos;//   List   房源地铁信息;
@property (nonatomic, copy) NSString *ApplianceInfo; // 租房配套信息

///最近是否浏览过改房源(此字段不是数据字典中的)
@property (nonatomic,assign) BOOL IsRecentlyVisitEstate;
@property (nonatomic,strong) NSString *PostVideoUrl;    //视频URL
@property (nonatomic,strong) NSString *PaNo;    //街景PaNo

@end

@interface SaleEstateYYModelEntity : NSObject

@property (nonatomic,strong) NSArray *Result;
@property (nonatomic,  copy) NSString *ResultNo;
@property (nonatomic,  copy) NSString *Total;

@end


====================.m====================
#import "SaleEstateYYModelEntity.h"

@implementation SaleResultEntity

@end

@implementation SaleEstateYYModelEntity

+ (NSDictionary *)modelContainerPropertyGenericClass {
    return @{
             @"Result" : [SaleResultEntity class]
             };
}

@end

Mantle测试的NSObject类型的代码

====================.h====================
#import "MTLModel.h"
#import "MTLJSONAdapter.h"
#import "NSValueTransformer+MTLPredefinedTransformerAdditions.h"

@interface SaleEstateListDetailEntity : MTLModel

@property (nonatomic,assign) BOOL isFollow;//是否跟盘
@property (nonatomic,assign) BOOL isSole;//是否独家
@property (nonatomic,assign) BOOL isOnline;//是否外网展示
@property (nonatomic,assign) BOOL rotatedIn;//是否一盘一处
@property (nonatomic,assign) BOOL isAnyTimeSee;//是否随时可看(钥匙)
@property (nonatomic,assign) BOOL isTop;//是否置顶
@property (nonatomic,assign) BOOL isHot;//是否热盘
@property (nonatomic,assign) BOOL isManWu;//是否满五年
@property (nonatomic,assign) BOOL isManEr;//是否满二年
@property (nonatomic,assign) BOOL isOnly;//是否唯一
@property (nonatomic,assign) BOOL isKeys;//是否有钥匙
@property (nonatomic,assign) BOOL isMetro;//是否地铁房
@property (nonatomic,assign) BOOL isSchool;//是否学区
@property (nonatomic,assign) BOOL isManager;//是否经理推荐
@property (nonatomic,assign) BOOL isRegion;//是否区域推荐
@property (nonatomic,assign) BOOL isExclusive;//是否新增独家人
@property (nonatomic,assign) BOOL isJiShou;//是否急售(限时出售)
@property (nonatomic,assign) BOOL isDel;//是否删除
@property (nonatomic,assign) BOOL label1;//预留标签1
@property (nonatomic,assign) BOOL label2;//是否含有视频
@property (nonatomic,assign) BOOL label3;//预留标签3
@property (nonatomic,assign) BOOL label4;//预留标签4
@property (nonatomic,assign) BOOL label5;//预留标签5

@property (nonatomic,assign) double salePrice;//售价
@property (nonatomic,assign) double unitSalePrice;//单价
@property (nonatomic,assign) double rentPrice;//租价
@property (nonatomic,assign) double gArea;//建筑面积
@property (nonatomic,assign) double lat;
@property (nonatomic,assign) double lng;

@property (nonatomic,strong) NSString *postId;//房源ID
@property (nonatomic,strong) NSString *agencyPropId;//agency房源id
@property (nonatomic,strong) NSString *postType;//租售类型 S:租 R:售 B:租售
@property (nonatomic,strong) NSString *estateName;//小区名称
@property (nonatomic,strong) NSString *estateCode;//小区code
@property (nonatomic,strong) NSString *address;//楼盘地址
@property (nonatomic,strong) NSString *title;//房源标题
@property (nonatomic,strong) NSString *keywords;//关键字
@property (nonatomic,strong) NSString *estateImageUrl;//房源默认图片路径
@property (nonatomic,strong) NSString *direction;//朝向
@property (nonatomic,strong) NSString *tencentVistaUrl;//腾讯街景
@property (nonatomic,strong) NSString *fitment;//装修情况
@property (nonatomic,strong) NSString *regionName;//区域名称
@property (nonatomic,strong) NSString *gscopeName;//板块名称
@property (nonatomic,strong) NSString *floorDisplay;//显示楼层

@property (nonatomic,assign) NSInteger roomCount;//房间数
@property (nonatomic,assign) NSInteger hallCount;//客厅数
@property (nonatomic,assign) NSInteger toiletCount;//卫浴数
@property (nonatomic,assign) NSInteger balconyCount;//阳台数
@property (nonatomic,assign) NSInteger kitchenCount;//厨房数
@property (nonatomic,assign) NSInteger regionId;//区域id
@property (nonatomic,assign) NSInteger gscopeId;//板块id
@property (nonatomic,assign) NSInteger estateSimilarPostsCnt;//小区同价位房源数量
@property (nonatomic,assign) NSInteger regionSimilarPostsCnt;//周边同价位房源数量
@property (nonatomic,assign) NSInteger floor;//所在楼层
@property (nonatomic,assign) NSInteger floorTotal;//总楼层
@property (nonatomic,assign) NSTimeInterval opDate;//建造年代

@property (nonatomic, copy)NSString *rentType;// 租房类型(整租/合租)
@property (nonatomic, copy)NSString *rentPayType;// 房租支付方式

@property (nonatomic, copy)NSString *matchSchoolsName;//对口学校名称拼接字符串 以英文逗号分隔(,);
@property (nonatomic, assign)BOOL isHasDealData;//是否成交
@property (nonatomic, strong)NSArray *railWayInfos;//   List   房源地铁信息;
@property (nonatomic, copy) NSString *applianceInfo; // 租房配套信息

///最近是否浏览过改房源(此字段不是数据字典中的)
@property (nonatomic,assign) BOOL isRecentlyVisitEstate;
@property (nonatomic,strong) NSString *postVideoUrl;    //视频URL
@property (nonatomic,strong) NSString *paNo;    //街景PaNo

@end

@interface SaleEstateMantleEntity : MTLModel

@property (nonatomic,assign) NSInteger resultNo;
@property (nonatomic,strong) NSString *message;
@property (nonatomic,assign) NSInteger total;
@property (nonatomic,strong) NSArray *result;

@end

====================.m====================
#import "SaleEstateMantleEntity.h"

@implementation SaleEstateListDetailEntity

+(NSDictionary *)JSONKeyPathsByPropertyKey
{
    
    return @{@"postId":@"PostId",
             @"agencyPropId":@"PropId",
             @"postType":@"PostType",
             @"estateName":@"EstateName",
             @"estateCode":@"EstateCode",
             @"address":@"Address",
             @"unitSalePrice":@"UnitSalePrice",
             @"rentPrice":@"RentPrice",
             @"title":@"Title",
             @"keywords":@"KeyWords",
             @"estateImageUrl":@"DefaultImage",
             @"roomCount":@"RoomCount",
             @"hallCount":@"HallCount",
             @"toiletCount":@"ToiletCount",
             @"balconyCount":@"BalconyCount",
             @"kitchenCount":@"KitchenCount",
             @"gArea":@"GArea",
             @"direction":@"Direction",
             
             @"isFollow":@"IsFollow",
             @"isSole":@"IsSole",
             @"isOnline":@"IsOnline",
             @"rotatedIn":@"RotatedIn",
             @"isAnyTimeSee":@"IsAnyTimeSee",
             @"isTop":@"IsTop",
             @"isHot":@"IsHot",
             @"isManWu":@"IsManWu",
             @"isManEr":@"IsManEr",
             @"isOnly":@"IsOnly",
             @"isKeys":@"IsKeys",
             @"isMetro":@"IsMetro",
             @"isSchool":@"IsSchool",
             @"isManager":@"IsManager",
             @"isRegion":@"IsRegion",
             @"isExclusive":@"IsExclusive",
             @"isJiShou":@"IsJiShou",
             @"isDel":@"IsDel",
             @"label1":@"Label1",
             @"label2":@"Label2",
             @"label3":@"Label3",
             @"label4":@"Label4",
             @"label5":@"Label5",
             
             @"salePrice":@"SalePrice",
             @"tencentVistaUrl":@"TencentVistaUrl",
             @"fitment":@"Fitment",
             @"lat":@"Lat",
             @"lng":@"Lng",
             @"regionId":@"RegionId",
             @"gscopeId":@"GScopeId",
             @"regionName":@"RegionName",
             @"gscopeName":@"GscopeName",
             @"estateSimilarPostsCnt":@"EstateSimilarPostsCnt",
             @"regionSimilarPostsCnt":@"RegionSimilarPostsCnt",
             @"floor":@"Floor",
             @"floorTotal":@"FloorTotal",
             @"floorDisplay":@"FloorDisplay",
             @"opDate":@"OpDate",
             @"rentType":@"RentType",
             @"rentPayType":@"RentPayType",
             @"railWayInfos":@"RailWayInfos",
             @"matchSchoolsName":@"MatchSchoolsName",
             @"isHasDealData":@"IsHasDealData",
             @"applianceInfo":@"ApplianceInfo",
             @"postVideoUrl":@"PostVideoUrl",
             @"paNo":@"PaNo",
             };
}

@end


@implementation SaleEstateMantleEntity

+(NSDictionary *)JSONKeyPathsByPropertyKey {
    return@{
            @"result":@"Result",
            @"resultNo":@"ResultNo",
            @"message":@"Message",
            @"total":@"Total"
            };
}

+(NSValueTransformer *)resultJSONTransformer {
    return [MTLJSONAdapter arrayTransformerWithModelClass:[SaleEstateListDetailEntity class]];
}

@end

Mantle测试的NSObject类型的代码

====================.h====================
#import 
#import "MJExtension.h"

@interface SaleEstateMJResultEntity : NSObject

@property (nonatomic,assign) BOOL isFollow;//是否跟盘
@property (nonatomic,assign) BOOL isSole;//是否独家
@property (nonatomic,assign) BOOL isOnline;//是否外网展示
@property (nonatomic,assign) BOOL rotatedIn;//是否一盘一处
@property (nonatomic,assign) BOOL isAnyTimeSee;//是否随时可看(钥匙)
@property (nonatomic,assign) BOOL isTop;//是否置顶
@property (nonatomic,assign) BOOL isHot;//是否热盘
@property (nonatomic,assign) BOOL isManWu;//是否满五年
@property (nonatomic,assign) BOOL isManEr;//是否满二年
@property (nonatomic,assign) BOOL isOnly;//是否唯一
@property (nonatomic,assign) BOOL isKeys;//是否有钥匙
@property (nonatomic,assign) BOOL isMetro;//是否地铁房
@property (nonatomic,assign) BOOL isSchool;//是否学区
@property (nonatomic,assign) BOOL isManager;//是否经理推荐
@property (nonatomic,assign) BOOL isRegion;//是否区域推荐
@property (nonatomic,assign) BOOL isExclusive;//是否新增独家人
@property (nonatomic,assign) BOOL isJiShou;//是否急售(限时出售)
@property (nonatomic,assign) BOOL isDel;//是否删除
@property (nonatomic,assign) BOOL label1;//预留标签1
@property (nonatomic,assign) BOOL label2;//是否含有视频
@property (nonatomic,assign) BOOL label3;//预留标签3
@property (nonatomic,assign) BOOL label4;//预留标签4
@property (nonatomic,assign) BOOL label5;//预留标签5

@property (nonatomic,assign) double salePrice;//售价
@property (nonatomic,assign) double unitSalePrice;//单价
@property (nonatomic,assign) double rentPrice;//租价
@property (nonatomic,assign) double gArea;//建筑面积
@property (nonatomic,assign) double lat;
@property (nonatomic,assign) double lng;

@property (nonatomic,strong) NSString *postId;//房源ID
@property (nonatomic,strong) NSString *agencyPropId;//agency房源id
@property (nonatomic,strong) NSString *postType;//租售类型 S:租 R:售 B:租售
@property (nonatomic,strong) NSString *estateName;//小区名称
@property (nonatomic,strong) NSString *estateCode;//小区code
@property (nonatomic,strong) NSString *address;//楼盘地址
@property (nonatomic,strong) NSString *title;//房源标题
@property (nonatomic,strong) NSString *keywords;//关键字
@property (nonatomic,strong) NSString *estateImageUrl;//房源默认图片路径
@property (nonatomic,strong) NSString *direction;//朝向
@property (nonatomic,strong) NSString *tencentVistaUrl;//腾讯街景
@property (nonatomic,strong) NSString *fitment;//装修情况
@property (nonatomic,strong) NSString *regionName;//区域名称
@property (nonatomic,strong) NSString *gscopeName;//板块名称
@property (nonatomic,strong) NSString *floorDisplay;//显示楼层

@property (nonatomic,assign) NSInteger roomCount;//房间数
@property (nonatomic,assign) NSInteger hallCount;//客厅数
@property (nonatomic,assign) NSInteger toiletCount;//卫浴数
@property (nonatomic,assign) NSInteger balconyCount;//阳台数
@property (nonatomic,assign) NSInteger kitchenCount;//厨房数
@property (nonatomic,assign) NSInteger regionId;//区域id
@property (nonatomic,assign) NSInteger gscopeId;//板块id
@property (nonatomic,assign) NSInteger estateSimilarPostsCnt;//小区同价位房源数量
@property (nonatomic,assign) NSInteger regionSimilarPostsCnt;//周边同价位房源数量
@property (nonatomic,assign) NSInteger floor;//所在楼层
@property (nonatomic,assign) NSInteger floorTotal;//总楼层
@property (nonatomic,assign) NSTimeInterval opDate;//建造年代

@property (nonatomic, copy)NSString *rentType;// 租房类型(整租/合租)
@property (nonatomic, copy)NSString *rentPayType;// 房租支付方式

@property (nonatomic, copy)NSString *matchSchoolsName;//对口学校名称拼接字符串 以英文逗号分隔(,);
@property (nonatomic, assign)BOOL isHasDealData;//是否成交
@property (nonatomic, strong)NSArray *railWayInfos;//   List   房源地铁信息;
@property (nonatomic, copy) NSString *applianceInfo; // 租房配套信息

///最近是否浏览过改房源(此字段不是数据字典中的)
@property (nonatomic,assign) BOOL isRecentlyVisitEstate;
@property (nonatomic,strong) NSString *postVideoUrl;    //视频URL
@property (nonatomic,strong) NSString *paNo;    //街景PaNo


@end

@interface SaleEstateMJEntity : NSObject

@property (nonatomic,assign) NSInteger resultNo;
@property (nonatomic,assign) NSInteger total;
@property (nonatomic,strong) NSArray *result;


@end
====================.m====================
#import "SaleEstateMJEntity.h"

@implementation SaleEstateMJResultEntity

+ (void)load{
    [SaleEstateMJResultEntity mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
        return @{@"postId":@"PostId",
                 @"agencyPropId":@"PropId",
                 @"postType":@"PostType",
                 @"estateName":@"EstateName",
                 @"estateCode":@"EstateCode",
                 @"address":@"Address",
                 @"unitSalePrice":@"UnitSalePrice",
                 @"rentPrice":@"RentPrice",
                 @"title":@"Title",
                 @"keywords":@"KeyWords",
                 @"estateImageUrl":@"DefaultImage",
                 @"roomCount":@"RoomCount",
                 @"hallCount":@"HallCount",
                 @"toiletCount":@"ToiletCount",
                 @"balconyCount":@"BalconyCount",
                 @"kitchenCount":@"KitchenCount",
                 @"gArea":@"GArea",
                 @"direction":@"Direction",
                 
                 @"isFollow":@"IsFollow",
                 @"isSole":@"IsSole",
                 @"isOnline":@"IsOnline",
                 @"rotatedIn":@"RotatedIn",
                 @"isAnyTimeSee":@"IsAnyTimeSee",
                 @"isTop":@"IsTop",
                 @"isHot":@"IsHot",
                 @"isManWu":@"IsManWu",
                 @"isManEr":@"IsManEr",
                 @"isOnly":@"IsOnly",
                 @"isKeys":@"IsKeys",
                 @"isMetro":@"IsMetro",
                 @"isSchool":@"IsSchool",
                 @"isManager":@"IsManager",
                 @"isRegion":@"IsRegion",
                 @"isExclusive":@"IsExclusive",
                 @"isJiShou":@"IsJiShou",
                 @"isDel":@"IsDel",
                 @"label1":@"Label1",
                 @"label2":@"Label2",
                 @"label3":@"Label3",
                 @"label4":@"Label4",
                 @"label5":@"Label5",
                 
                 @"salePrice":@"SalePrice",
                 @"tencentVistaUrl":@"TencentVistaUrl",
                 @"fitment":@"Fitment",
                 @"lat":@"Lat",
                 @"lng":@"Lng",
                 @"regionId":@"RegionId",
                 @"gscopeId":@"GScopeId",
                 @"regionName":@"RegionName",
                 @"gscopeName":@"GscopeName",
                 @"estateSimilarPostsCnt":@"EstateSimilarPostsCnt",
                 @"regionSimilarPostsCnt":@"RegionSimilarPostsCnt",
                 @"floor":@"Floor",
                 @"floorTotal":@"FloorTotal",
                 @"floorDisplay":@"FloorDisplay",
                 @"opDate":@"OpDate",
                 @"rentType":@"RentType",
                 @"rentPayType":@"RentPayType",
                 @"railWayInfos":@"RailWayInfos",
                 @"matchSchoolsName":@"MatchSchoolsName",
                 @"isHasDealData":@"IsHasDealData",
                 @"applianceInfo":@"ApplianceInfo",
                 @"postVideoUrl":@"PostVideoUrl",
                 @"paNo":@"PaNo",
                 };
    }];
}

@end

@implementation SaleEstateMJEntity

+ (NSDictionary *)mj_replacedKeyFromPropertyName {
    return @{
             @"resultNo" : @"ResultNo",
             @"total":@"Total",
             @"result":@"Result"
             };
}

+ (NSDictionary *)mj_objectClassInArray {
    
    return @{
             @"result" : @"SaleEstateMJResultEntity"
             };
}
@end

附录

DataSource.plist文件数据,请见附录

你可能感兴趣的:(Object-C_Mantle,MJExtension,YYKit转换性能对比)