【发布时间】:2014-08-18 15:24:22
【问题描述】:
我当前的项目使用 AFNetworking 2.2,并且在我添加 Restkit 时通常拒绝编译。 有没有办法让我从其他一些轻量级库中获得如下定义的 RKObjectMapping 等价物?我说的是采用 JSON 并将其转换为自定义值对象,而不仅仅是字典或数组.
我想到了适用于 Android 的 Google GSON,iOS 有类似的东西吗?
我想要完成什么:
static RKObjectMapping* mapping = nil;
+(RKObjectMapping*)objectMapping
{
if(mapping != nil)
{
return mapping;
}
//allows automatic unpacking of JSON payloads into Value Objects
//https://github.com/RestKit/RestKit/wiki/Object-Mapping
//JSON - VO
mapping = [RKObjectMapping mappingForClass:[MyVO class]];
[mapping addAttributeMappingsFromDictionary:@{
@"label": @"label",
@"icon": @"iconName",
@"action": @"actionName",
@"children": @"children"
}];
return mapping;
}
【问题讨论】:
-
使用 NSJSONSerialization 生成一个 NSDictionary,然后为你的类编写一个
initWithDict:方法。为您提供完全的控制权,而且并不比为最微不足道的情况进行“自动”对象映射更困难。 -
这是我目前正在使用的,但希望有一些东西可以让这更简单。
-
我为此付出了很多努力,这是最简单的方法。调用与您的 json 匹配,然后调用它。如果您想在运行时扩展该类,您可以在 json stackoverflow.com/questions/7819092/… 中添加具有匹配新键的属性
标签: objective-c json ios7 gson restkit