【发布时间】:2012-04-16 00:43:53
【问题描述】:
如何使用 RestKit RKObjectMapping 映射下面的嵌套 json?我只需要映射“数据”。我下面的当前代码返回 (null) - 谢谢!
{
"sucess": true,
"error": {
"code": "",
"message": ""
},
"data": [
{
"id": 1,
"name": "Salad",
"description": "Salad Desc",
"category_id": 1
},
{
"id": 2,
"name": "Soup",
"description": "Soup Desc",
"category_id": 1
},
{
"id": 3,
"name": "Wrap",
"description": "Wrap Desc",
"category_id": 1
},
{
"id": 4,
"name": "Appetizers",
"description": "Appetizers Desc",
"category_id": 1
}
]
}
类
@interface Subcategory : NSObject
@property (nonatomic, retain) NSNumber *subcategoryID;
@property (nonatomic, retain) NSNumber *categoryID;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *description;
@property (nonatomic, retain) NSString *thumbnail;
@property (nonatomic, retain) NSArray *data;
视图控制器
RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[Subcategory class]];
RKObjectMapping* dataMapping = [RKObjectMapping mappingForClass:[Subcategory class]];
[dataMapping mapKeyPath:@"id" toAttribute:@"subcategoryID"];
[dataMapping mapKeyPath:@"category_id" toAttribute:@"categoryID"];
[dataMapping mapAttributes:@"name", @"description", nil];
[mapping mapKeyPath:@"data" toRelationship:@"data" withMapping:dataMapping];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:[NSString stringWith
【问题讨论】:
-
为了他人的利益,github.com/RestKit/RestKit/wiki/Object-mapping 是 RK 对象映射的一个很好的入门资源。
-
快速提问,我不是 ObjC 专家,但有人告诉我 NSString 属性应该是“复制”而不是“保留”,但我看到很多开源项目中保留了 NSString 属性并在此处发帖 - @steamboy 在这种情况下使用“保留”是否有原因?
标签: objective-c ios restkit