【问题标题】:Restkit 0.10.1 object mapping with RKObjectManagerRestkit 0.10.1 与 RKObjectManager 的对象映射
【发布时间】:2012-08-01 21:27:34
【问题描述】:

我一直在努力寻找一个解决方案和一个很好的教程来教授 Restkit 的对象映射功能。但是,来自 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 中的状态和传真等简单属性,是否有将值映射到我的联系人类属性的约定。

2)此外,我知道我可以使用关系映射来映射子对象地址,但是当我声明一个 NSMutableArray 来存储联系人内部的地址列表时,我该怎么做。

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

感谢您的宝贵时间。 布赖恩

【问题讨论】:

    标签: objective-c json ios5 mapping restkit


    【解决方案1】:

    为了映射到没有rootkeypath的JSON,我们设置使用:

    [self.manager.mappingProvider setObjectMapping:self.contactMap forResourcePathPattern:@"/contacts"] ;

    但是,这会带来一个无法进行 POST 的问题,因为没有 RootKeyPath 就无法为对象创建序列化映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多