簡體   English   中英

RestKit 0.2:扁平化JSON中的層次結構

[英]RestKit 0.2: flattening the hierarchy in JSON

也許這里有一個類似的問題,但我找不到。 所以我有RestKit 0.2pre4並想映射這樣的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”對象單獨存儲在數據庫中-只是沒有意義。 因此,我想將那些嵌套的東西(location.position.latitude和location.position.longitude)分配給對象本身的特定屬性。 如何實現呢?

顯然,我做了個瘋狂的猜測,而且奏效了! 這是達到目的的映射:

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

尚未在文檔中找到此內容,但也許只是我...無論如何,如果某些合理但未記錄的內容有效,那么框架應該是不錯的。 :) RestKit FTW!

您可以使用以下方式將字符串containsig和json字符串傳遞給nsdata:

NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];

然后,您將能夠使用iOS API解析de json數據,

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

現在,檢查生成的NSDictionary(例如,使用NSlog),填充“ FavoritePlace”對象,並將其持久化。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM