2012-08-03 208 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的對象創建序列化映射。