序列化框架MJExtension详解 + iOS ORM框架

本文详细介绍了序列化框架MJExtension在iOS开发中的应用,包括如何将字典转换为模型、处理属性名与关键字冲突、处理嵌套字典以及处理驼峰命名规则。还探讨了如何在MJExtension中进行ORM配置,如指定嵌套模型的类名,以及通过MJExtensionModelConfig类集中管理模型配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最基本用法:

// 将字典转为模型
Person *p = [Person mj_objectWithKeyValues:dict2];
// 将 plist数据转成模型数组
NSArrar *models = [Person mj_objectArrayWithFile:@“xx.plist”];
// 将字典数组转成模型数组, 最常用
NSArrar *models = [Person mj_objectArrayWithKeyValuesArray:dict];

1 . 属性名和关键字冲突, 我们需要变更属性名, 比如 JSON 里是 id, 我们最好不要用 id, 又比如 discription, 和系统类重名了

NSDictionary *dict = @{
                       @"name":@"xiaofei",
                       @"age":@24,
                       @"id":@123456,
                       @"description":@"haoshuai"
                       };

这时候我们属性就不能命名 id, description 了, 得换一个
// person.h
@interface Person : NSObject
@property(nonatomic, strong) NSString * name;
@property(nonatomic, assign) NSInteger age;
@property(nonatomic, strong) NSString * descrip;
@property(nonatomic, strong) NSString *ID;

@end

光换名字不行, 我们得把换的名字和字典中的 key联系起来, 不然转换成模型后, 属性是没有值得
MJExtension 提供了一个+ mj_replacedKeyFromPropertyName的方法(该方法在模型中使用), 可以把原来字典中的 key 和你修改后的属性再关联起来, 你只要告诉它, 想把什么属性名替换为原来的那个 key
// person.m

  • (NSDictionary *)mj_replacedKeyFromPropertyName
    {
    return @{
    // 模型属性: JSON key, MJExtension 会自动将 JSON 的 key 替换为你模型中需要的属性
    @“ID”?“id”,
    @“descrip”?“description”,
    };
    }

2 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值