Я довольно новичок в инфраструктуре RestKit. Мне трудно разбираться в ответе JSON.Отображение объектов с помощью RestKit
{
"success": "1",
"loginStatus": "Success",
"sessionToken": "NTE5YTg5NjE4ZDIxYzQ3YzMUybdtsUU8989GVmaW5lZHwxMzY5ODE0MTc4Mzgw",
"user": {
"ActivationMethod": false,
"ActivationToken": "iey4C5E3iMt7mXZL",
"Active": true,
"FirstName": "John",
"LastName": "Doe",
}
}
Это ответ веб-службы входа в систему.
Я хочу иметь значение sessionToken, FirstName и LastName для сопоставления в одном классе. Для этого я создал класс User
@interface User : NSObject
@property (nonatomic, strong) NSString* firstName;
@property (nonatomic, strong) NSString* lastName;
@property (nonatomic, strong) NSString* sessionToken;
@end
Для отображения Я попытался следующий код:
RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[User class]];
[mapping addAttributeMappingsFromDictionary:@{
@"FirstName": @"firstName",
@"LastName": @"lastName",
@"sessionToken" : @"sessionToken",
}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping pathPattern:@"/login" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
С помощью этого я получаю значения Lastname и Firstname нулевой.
URL-адрес является HTTP: // [БАЗА URL]/войти в
Я прошел через это link на отображение объекта, но может решить эту проблему.
Все указатели в этом отношении будет очень полезным
С уважением,
tek3
** * ** * ** * ** * ** EDIT ** * ** * ** * ** * ****
Теперь я могу получить значения, используя код, приведенный ниже.
RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[User class] ];
[userMapping addAttributeMappingsFromDictionary:@{
@"FirstName": @"firstName",
@"LastName": @"lastName",
}];
RKObjectMapping* loginMapping = [RKObjectMapping mappingForClass:[Login class] ];
[loginMapping addAttributeMappingsFromDictionary:@{
@"sessionToken": @"sessionToken",
}];
[loginMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"user"
toKeyPath:@"user"
withMapping:userMapping]];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:loginMapping pathPattern:@"/login" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
Но у меня все еще есть одна путаница. Мне пришлось создать еще один логин как
@interface Login : NSObject
@property (nonatomic, strong) NSString* sessionToken;
@property (nonatomic, strong) User* user;
@end
У пользователя есть объект класса User как свойство. Есть ли способ получить значения всех ключей в ответе JSON, просто создав один объект, а не несколько вложенных объектов?
Спасибо большое ... – tek3
Спасибо! Помог мне много! –