YYModel
YYModel copied to clipboard
Model转JSON字段丢失问题
- 首先把JSON转Model,转换正常。有自定义属性映射如下:
+ (NSDictionary *)modelCustomPropertyMapper {
return @{@"name": @"uid"};
}
- 然后再把这个转换后的model转换成JSON字符串、或者字典,都会丢失name字段。或者说,name字段名变成了uid。model中没有定义uid这个属性 🤣
其他属性映射也有类似问题,如@{@"desc": @"detail.desc"};
,此时model再转JSON,desc也丢失了。
应该跟作者用到的缓存策略有关系,待研究...
@xuliang2015 丢失属性是因为 当在递归的时候发现这个模型对应的属性为空的时候,直接返回了,没有走
if (!dic[propertyMeta->_mappedToKey]) { dic[propertyMeta->_mappedToKey] = value; }
这个方法,导致字典里面没有这个key
@xuliang2015 序列化和反序列化,都会进行rename的操作。 如果字段不多,可在
- (BOOL)modelCustomTransformToDictionary:(NSMutableDictionary *)dic {
if (!_name) return NO;
dic[@"uid"] = _name;
return YES;
}
中进行一些自动转换不能完成的操作。