2012-08-03 107 views
0

我一直在努力寻找一个解决方案和一个教授Restkit的对象映射功能的好教程。但是,GITHUB回购的教程很不明确。Restkit 0.10.1与RKObjectManager的对象映射

这是我收到一个GET调用来http://baseURL.com/contacts/

的JSON请注意,我的JSON没有根的keyPath像“ACContact”,相对于其他的教程。

[{ 
"status":"ACTIVE", 
"fax":"555-1212", 
"addresses":[ 
    { 
    "line1":"6 Main Street", 
    "line2":"", 
    "city":"Acton" 
    }, 
    { 
    ... 
    } 
....(other stuff)... 
} 
...more similar JSONs for the other contacts... 
] 

我仍然无法弄清楚如何映射孩子的对象数组的地址,所以我只是尽量把类的其他普通的属性:

RKObjectManager *manager = [RKObjectManager objectManagerWithBaseURL: some_URL] ; 

[[manager client] setValue:@"true" forHTTPHeaderField:@"SSLClientCipher"] ; 
[[manager client] setValue:@"accept" forHTTPHeaderField:@"application/json"] ; 

RKObjectMapping * contactMap = [RKObjectMapping mappingForClass:[ACContact class]] ; 
[contactMap mapKeyPath:@"status" toAttribute:@"status"] ; 
[contactMap mapKeyPath:@"fax" toAttribute:@"fax"] ; 

[[manager mappingProvider] addObjectMapping:contactMap] ; 

[manager loadObjectsAtResourcePath:@"/contacts" delegate:self] ; 

这是错误我收到后来:

restkit.object_mapping:RKObjectMapper.m:81添加映射错误:找不到的keyPath对象映射: ''

restkit.network:RKObjectLoader.m:222遇到映射过程中出现错误:找不到的keyPath对象映射:“”

1)谁能告诉我是怎么回事错在这里? 请注意,与其他教程相比,我的JSON没有像“ACContact”这样的根键盘路径。

对于简单的属性,如状态和传真在JSON中,是否存在将值映射到Contact类的属性的约定。 2)此外,我知道我可以使用关系映射来映射子对象的地址,但是当我声明一个NSMutableArray来存储联系人中的地址列表时,我该怎么做。

3)如果一切正常,在解析多个联系人的整个JSON时如何创建联系人列表?

谢谢你的时间。 布赖恩

回答

0

用于映射到JSON而不rootkeypath,我们设置使用:

[self.manager.mappingProvider setObjectMapping:self.contactMap forResourcePathPattern:@ “/接触”];

但是,这会造成一个问题,即您无法执行POST,因为没有可以为没有RootKeyPath的对象创建序列化映射。