RestKit を使用したセット マッピングを手伝ってください。これを行う方法がわかりません。
私のJSONは
{
"result":{
"success":"1",
"message":"You logged in successfully.",
"data":{
"user_id":"1",
"firstname":"somefirstname",
"lastname":"somelastname",
"username":"someusername",
"country_id":"someid",
"country_name":"somecountry",
"phone":"1234567890",
"status":"active"
}
}
}
私がこれまでやってきたことは、
RKObjectMapping *loginMapping = [RKObjectMapping mappingForClass:[Login class]];
[loginMapping addAttributeMappingsFromDictionary:@{ @"user_id":@"intUserID", @"firstname":@"strFirstName", @"lastname":@"strLastName"}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:loginMapping
method:RKRequestMethodGET
pathPattern:@"PathTOLogin"
keyPath:@"result.data"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[AFNetworkActivityIndicatorManager sharedManager].enabled = YES;
NSURL *baseURL = [NSURL URLWithString:kAPIBaseURLString];
AFHTTPClient* client = [[AFHTTPClient alloc] initWithBaseURL:baseURL];
RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
Login *loginObject = [[Login alloc] init];
[objectManager getObject:loginObject path:kUserLogin parameters:params success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
}];
問題は、JSON応答が次のようになる場合があるようなものです
{
"result":{
"success":"0",
"message":"Invalid Username or Password",
}
}
したがって、エラーがスローされます
Error Domain=org.restkit.RestKit.ErrorDomain Code=1001
そのため、モデル クラスに成功/メッセージとして他のすべてのプロパティと共にさらに 2 つのプロパティを追加することを考えましたが、これらのプロパティはルートにあり、その他はキー パス「result.data」にあるため、カスタム マッピングの設定に固執しました。
誰か助けてください。