我一直在努力寻找一个解决方案和一个很好的教程来教授Restkit的Object Mapping功能。但是,GITHUB repo的教程非常不清楚。
这是我收到的对http://baseURL.com/contacts/
进行GET调用的JSON请注意,与其他教程相比,我的JSON没有像“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 :(得分:0)
为了在没有rootkeypath的情况下映射到JSON,我们设置使用:
[self.manager.mappingProvider setObjectMapping:self.contactMap forResourcePathPattern:@“/ contacts”];
然而,这会造成一个问题,即你无法进行POST,因为没有wat来为没有RootKeyPath的对象创建序列化映射。