现在大部分的项目都需要将服务器返回的JSON数据转换为Model再使用,手动转换不仅费时费力,还写了一堆重复代码,肯定是不科学的,一般都使用相应的工具来自动转换。目前接触的字典转模型工具有三种,Mantle,MJExtension,JSONModel,虽然他们做的事情都是一样的,但是使用方法区别还是蛮大的,以及在一些细节上的处理也是不同的。
简单的例子就不来了,可以直接到Github上面查看,这里上一个比较典型全面的例子。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
|
- - (NSDictionary *)JSONDict { if (_JSONDict == nil) { _JSONDict = @{@"name" : [NSNull null], "age" : @20,152)!important">"sex" : 0,152)!important">"login_date" : "1445136827",152)!important">"phone" : @{ "name" : "小明的iPhone",152)!important">"price" : 5000 } "books" : @[ "西游记"},152)!important">"三国演义"} ] }; } return _JSONDict; }
|
对应模型的特点: 1、有NSNull对象,2、模型里面嵌套模型,3、模型里面有数组,数组里面有模型.
对应的模型如下:
- 18
- 19
- 20
- 21
- 22
- 23
|
- .h typedef NS_ENUM(NSUInteger, Sex) { SexMale, SexFemale }; @interface BookForMantle : MTLModel <MTLJSONSerializing> property (nonatomic,210)!important">copy,210)!important">nullable) NSString *name; end PhoneForMantle : assign) double price; UserForMantle : assign) NSInteger age; Sex sex; strong,210)!important">NSDate *loginDate; PhoneForMantle *phone; NSArray<BookForMantle *> *books; end
|