JSONModel

开源第三方地址: https://github.com/icanzilb/JSONModel

  • 1 model 创建
#import "JSONModel.h"

// 次model
@interface ScoreModel : JSONModel
@property (nonatomic, strong) NSString *english;
@property (nonatomic, strong) NSString *chinese;
@end

// 主model
@interface UserModel : JSONModel
@property (nonatomic, strong) NSString *name;       // 一般
@property (nonatomic, strong) ScoreModel *scores;  // model 嵌套 model
@property (nonatomic, strong) NSString *eng_score; // 获取 scores 中的 英语成绩,model多级映射
@property (nonatomic, strong) NSArray *scoreArray;// model 嵌套数组
@end

  • 2 model 属性 可空 或 不存在
#import "UserModel.h"
@implementation ScoreModel
+ (BOOL)propertyIsOptional:(NSString *)propertyName{
    return YES; //
}
@end
@implementation UserModel
+ (BOOL)propertyIsOptional:(NSString *)propertyName{
    return YES;
}
  • 3 修改 映射 路径,

+(JSONKeyMapper*)keyMapper{
    // 映射路径 : 属性名
    return [[JSONKeyMapper alloc] initWithDictionary:@{
                                                       @"scores.english": @"eng_score"
                                                       }];
}

  • 4 举例

    NSDictionary *dict = @{
                           @"name" : @"Jack",
                           @"address":@"浙大紫金港",
                           @"age" : @"20",
                           @"scores":@{@"english":@"99",@"chinese":@"133"},
                           @"scoreArray":@[@{@"english":@"99",@"chinese":@"133"},
                                           @{@"english":@"98",@"chinese":@"134"},
                                           @{@"english":@"97",@"chinese":@"135"}]
                           };

 
    UserModel *model = [[UserModel alloc] initWithDictionary:dict error:nil];
    NSLog(@"%@",model.name);// 正常的 字典
    NSLog(@"%@",model.scores.english);// 嵌套 model
    NSLog(@"%@",model.eng_score);// 修改映射路径
    NSLog(@"%@",model.scoreArray[0]);// 嵌套 model数组

其他

model 属性 不仅限于 NSString类型。
model 可以 设置 ignores

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Magical Data Modelling Framework for JSON https://github....
    橙娃阅读 901评论 1 0
  • 前言 如今基本都是客户端请求服务器的模式,数据传递方式基本都使用JSON的字符串方式。然而当我们获取了服务器发来的...
    Alibsolute阅读 5,242评论 6 4
  • 前言 本文的demo更新在github上。 客户端请求服务器,经常使用的时JSON方式传递数据。一些第三方开源库帮...
    game3108阅读 3,229评论 3 53
  • 目录 1 JsonModel的简介以及XML简介 2 JsonModel的入参与出参( NSString NSD...
    辛小二阅读 2,786评论 0 6
  • 2016.09.02 By Lsz 昨天说到《肖申克的救赎》,想起与它一起出现在各种电影推荐排行榜上的还有《当幸福...
    Lsuzen阅读 230评论 0 0