一、用法
YYModel跟MJExtension作用相似。也提供了一下数据的相互转换
array,dictionary<--->model array,model<--->jsonStr<--->json(data)
1.转成model, model array
+ (instancetype)yy_modelWithJSON:(id)json;
+ (instancetype)yy_modelWithDictionary:(NSDictionary *)dictionary;
//转成model array
+ (NSArray *)yy_modelArrayWithClass:(Class)cls json:(id)json;
+ (NSArray *)yy_modelArrayWithClass:(Class)cls array:(NSArray *)arr;
看源码我们可以很快发现:yy_modelWithJSON
方法中先将传入的对象先变成NSDictionary
对象,这里就已经完成了jsonStr/json(data)转dictionary,而且用的是系统方法。然后在用yy_modelWithDictionary
去实现dictionary转model,这里才是难点。转成model array哪里的核心其实就是循环调用了yy_modelWithDictionary
方法。
2.转成dictionary,array
- (id)yy_modelToJSONObject;
3.转成json(data)
- (NSData *)yy_modelToJSONData;
4.转成jsonStr
- (NSString *)yy_modelToJSONString;
我们看代码会发现yy_modelToJSONString
方法调用了yy_modelToJSONData
方法,yy_modelToJSONData
方法调用了yy_modelToJSONObject
方法。其中dictionary转json(data)转jsonStr都使用的系统方法,难点在于model转换成dictionary。
网友评论