我有一个json如下
{
"predictions":[
{
"description":"User1",
"id":"75b8c57b4443f4b881f0efc94afd52437232aee9"
},
{
"description":"User2",
"id":"82aa3303704041cda0e4fc34024d383dbf923604"
},
{
"description":"User3",
"id":"f88f669a30934ef599bccf86c0236426cf2d313e"
},
{
"description":"User4",
"id":"fa9ae7b65fa52bffdabf00d69e7db5cd37539781"
},
{
"description":"User5",
"id":“66df3fd7e400eb31efd3ac935036aab2c02b03f0"
}
],
"status":"OK"
}
我正在使用RestKit来处理它。下面是我如何进行对象映射
第1类 - Description.h
@interface Description : NSObject
@property(nonatomic,strong) NSString* place;
@end
第2类 - Predictions.h
@interface Predictions : NSObject
@property(nonatomic,strong) Description* placeDescription;
@end
在我的网络界面中,我做了
-(RKResponseDescriptor*)rkObjectMappingforAutoSuggest:(NSString**)objectPath{
RKObjectMapping* descriptionMapping = [RKObjectMapping mappingForClass:[Predictions class]];
[descriptionMapping addAttributeMappingsFromDictionary:@{
@"description":@"description"}];
RKObjectMapping* responseMapping = [RKObjectMapping mappingForClass:[Description class]];
[responseMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"predictions"
toKeyPath:@"predictions"
withMapping:descriptionMapping]];
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:responseMapping
method:RKRequestMethodGET
pathPattern: objectPath
keyPath:nil
statusCodes:[NSIndexSet indexSetWithIndex:200]];
return responseDescriptor;
}
我只需要在回复中说明。
我想我在数据映射中犯了一些错误。该应用程序正在崩溃以下消息
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Predictions 0x15ef98d0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key description.'
***
无法找出问题。
答案 0 :(得分:1)
您正在将JSON中的description
键映射到description
对象上的Predictions
键,该键不存在。
Predictions
类的属性称为placeDescription
,而不是description
。
将传递给addAttributeMappingsFromDictionary:
的词典替换为:
@{
@"description":@"placeDescription"
}