iOS Objective-C 字典或JSON字符串转模型
前言
基于Runtime,封装一个字典或JSON字符串转模型的框架。
一、字典转模型
调用方法j_modelWithDictionary:,传入字典。
Book *book = [Book j_modelWithDictionary:@{@"id":@(99),@"name":@"书",@"pages":@(199),@"author":@{@"name":@"小王",@"birthday":@"1987-09-31"}}];
NSLog(@"%@",book);
输出:
2025-09-16 23:11:03.255581+0800 JModelDemo[684:79723] Book,id:99,name:书,pages:199,作者名:小王,作者生日:1987-09-31
二、JSON字符串转模型
调用方法j_modelWithJSON:,传入JSON字符串。
Book *book = [Book j_modelWithJSON:@"{\"id\": 99,\"name\": \"书\", \"pages\": 199, \"author\": {\"name\": \"小王\", \"birthday\": \"1987-09-31\" }}"];
NSLog(@"%@",book);
输出:
2025-09-16 23:13:41.437601+0800 JModelDemo[688:80503] Book,id:99,name:书,pages:199,作者名:小王,作者生日:1987-09-31
三、JSON字符串转模型数组
调用方法j_modelsWithJSON:,传入JSON字符串。
NSArray *arr = [Book j_modelsWithJSON:@"[{\"id\": 99,\"name\": \"书1\", \"pages\": 199, \"author\": {\"name\": \"小王\", \"birthday\": \"1987-09-31\" }},{\"id\": 100,\"name\": \"书2\", \"pages\": 199, \"author\": {\"name\": \"小王\", \"birthday\": \"1988-09-31\" }},{\"id\": 101,\"name\": \"书3\", \"pages\": 199, \"author\": {\"name\": \"小王\", \"birthday\": \"1989-09-31\" }}]"];
输出
2025-09-16 23:15:53.613887+0800 JModelDemo[692:81257] (
“Book,id:99,name:\U4e661,pages:199,\U4f5c\U8005\U540d:\U5c0f\U738b,\U4f5c\U8005\U751f\U65e5:1987-09-31”,
“Book,id:100,name:\U4e662,pages:199,\U4f5c\U8005\U540d:\U5c0f\U738b,\U4f5c\U8005\U751f\U65e5:1988-09-31”,
“Book,id:101,name:\U4e663,pages:199,\U4f5c\U8005\U540d:\U5c0f\U738b,\U4f5c\U8005\U751f\U65e5:1989-09-31”
)
四.几点说明
支持属性和键的映射,方便用户自定义属性名。
+(NSDictionary *)propertyKeyMapping{
return @{@"bookId":@"id"};
}
可以不指定特殊类,程序能自己推断。
//下面的代码也可以不写,见demo
+(NSDictionary *)specialClassMapping{
return @{@"author":@"Author"};
}
获取对象类型代码
五.代码地址
六、总结
JModel是基于Runtime的字典转模型工具,支持字典快速生成自定义模型对象。
更多推荐

所有评论(0)