2012-12-20 56 views
1

也許這裏有類似的問題,但我找不到它。所以我有RestKit 0.2pre4,並希望這樣的映射JSON ...RestKit 0.2:在JSON中扁平化層次結構

{ 
    "location": { 
     "position": { 
      "latitude": 53.9675028, 
      "longitude": 10.1795594 
     } 
    }, 
    "id": "da3224f2-5919-42f2-9dd8-9171088f4ad7", 
    "name": "Something even more beautiful", 
} 

...這樣的對象:

@interface FavoritePlace : NSManagedObject 

@property (nonatomic, retain) NSString * name; 
@property (nonatomic, retain) NSString * placeId; 
@property (assign, nonatomic) double latitude; 
@property (assign, nonatomic) double longitude; 

@end 

正如你所看到的,問題是,我不我想創建一個關係並分別在數據庫中存儲「位置」對象 - 這只是沒有意義。因此,我想將這些嵌套的東西(location.position.latitude和location.position.longitude)分配給對象本身的特定屬性。如何實現這一目標?

回答

1

顯然,我做了一個野驢猜測,它的工作!下面是其中的伎倆映射:

[placeMapping addAttributeMappingsFromDictionary:@{ 
    @"id": @"placeId", 
    @"name": @"name", 
    @"location.position.latitude": @"latitude", 
    @"location.position.longitude": @"longitude"  
    }]; 

有沒有在文檔中發現了這一點,但也許這只是我......反正,如果事情的邏輯,但沒有證件,工作,然後框架應該是不錯的。 :) RestKit FTW!

0

您可以將字符串傳遞containig的JSON字符串

NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 

到NSData的。然後,你將能夠與

NSError *error; 
NSDictionary *json = jsonData ? [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error] : nil; 

與iOS的API來解析解JSON數據現在,檢查生成NSDictionary(例如NSlog),填充你的'FavoritePlace'對象並保存它。

希望有所幫助!

+0

感謝您的回答,但如果可能的話,我寧願留在RestKit領域。開始擺弄生JSON將破壞使用RestKit的全部目的,恕我直言... – Haspemulator

+0

Oki,因爲我不能幫你xD。祝你好運! –

+0

你爲什麼不看看你的第三方框架的文檔?如果功能和文檔不令人滿意,請放棄它。 – Mundi