解析了这么多数据, KVC ,和YYKit 是我觉得最好用的两个工具呀。

YYModel
// JSON:

{
    "n":"Harry Pottery",
    "p": 256,
    "ext" : {
        "desc" : "A book written by J.K.Rowing."
    },
    "ID" : 100010
}

// Model:
@interface Book : NSObject
@property NSString *name;
@property NSInteger page;
@property NSString *desc;
@property NSString *bookID;
@end
@implementation Book
//返回一个 Dict,将 Model 属性名对映射到 JSON 的 Key。
+ (NSDictionary *)modelCustomPropertyMapper {
    return @{@"name" : @"n",
             @"page" : @"p",
             @"desc" : @"ext.desc",
             @"bookID" : @[@"id",@"ID",@"book_id"]};
}
@end


KVC

这样的数据

.h文件里

@property (nonatomic,strong)  NSString *n;

@property (nonatomic,assgin)NSInteger  p;

@property (nonatomic,strong) NSDictionary  *ext;

@property (nonatomic,strong) NSString *ID;

KVC用前要去.m里面实现两个协议防止崩溃

@implementation  KVCmodel

- (id) valueForUndefinedKey:(NSString *)key

{

    return nil;

}


- (void)setValue:(id)value forUndefinedKey:(NSString *)key

{

    // NSStringFromClass获取自己类的名字

    NSLog(@"%@类没有定义%@属性",NSStringFromClass([self class]),key);

}


- (void)setValue:(id)value forKey:(NSString *)key

{

   这个方法里面可以写很多判断

 

// 父类完成转换成NSNumber工作

    if ([value isKindOfClass:[NSNumber class]]) {

        

        // (1)numberstring

        value = [value stringValue];

        // (2)number通过NSNumberFormatterstring

//        NSNumberFormatter *format = [[NSNumberFormatter alloc]init];

//        value = [format stringFromNumber:value];

        

    }else{

    [super setValue:value forKey:key];

    }        

            

            

        }

    

    

    }else

    {

        [super setValue:value forKey:key];

    }


}

两个都可以一句话完美解析数据,我是觉得如果需要 另一个模型装子数组的所有数据,那KVC最棒没有之一,KVC 是系统开放的API效率自然也高些。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值