簡體   English   中英

在POST JSON RestKit中檢索null

[英]Retrived null in POST JSON RestKit

我使用過RestKit,並與托管對象進行了映射。 然后,我使用postObject方法,但是在檢索正文時遇到問題,因為它映射為null。

 RKObjectManager  *objectManager = [RKObjectManager managerWithBaseURL:baseURL];

// Serialize to JSON
objectManager.requestSerializationMIMEType = RKMIMETypeJSON;

[RKObjectManager setSharedManager:objectManager];

RKEntityMapping *searchInfoMapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([Search class]) inManagedObjectStore: objectManager.managedObjectStore];
searchInfoMapping.identificationAttributes = @[ @"faresQueryType" ];

[searchInfoMapping addAttributeMappingsFromDictionary:@{
    @"id" : @"ID",
    @"type" : @"Type",
    @"count" : @"Count",
    @"route” : @"route”,
}];

RKObjectMapping     *searchInfoRequestMapping =[RKObjectMapping requestMapping];
[searchInfoRequestMapping addAttributeMappingsFromDictionary:@{
    @"id" : @"ID",
    @"type" : @"Type",
    @"count" : @"Count",
    @"route” : @"route”,
}];

//Data mapping is a method that returns an RKObjectMapping for my model
RKResponseDescriptor * searchDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:searchInfoMapping pathPattern:nil keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptorsFromArray:@[searchDescriptor,]];

//Inverse mapping, to perform a POST

RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:searchInfoRequestMapping  objectClass:[Search class] rootKeyPath:nil];
[objectManager addRequestDescriptor:requestDescriptor];


[appDelegate.objectManager postObject:nil path:@"routes" parameters:postParameters success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
            NSLog(@"Success case %@",mappingResult);
        } failure:^(RKObjectRequestOperation *operation, NSError *error) {
            NSLog(@"Failure in Flight Mapping %@",error);
            [alert show];
        }];

編輯

      //JSON Result 

    {
    "currency": {
        "code": "USD",
        "name": "U.S. Dollar",
        "symbol": "US$",
        "exchange_rate": 1
    },
    "routes": [
        {
            "id": "MS648-2022:MS985-2110",
            "fares": [
                {
                    "price": 745.32,
                    "description": "Economy",
                    "deeplink": "http://www.wego.com/flights/providers/2/deeplinks?search_id=CQtxCXQCRfmwhp72PAjopQ&trip_id=RUH:NYC:2013-12-20&fare_id=sky-tours.com:0&route=RUH-JFK",
                    "provider_code": "sky-tours.com",
                    "deeplink_params": {
                        "trip_id": "RUH:NYC:2013-12-20",
                        "route": "RUH-JFK",
                        "search_id": "CQtxCXQCRfmwhp72PAjopQ",
                        "fare_id": "sky-tours.com:0"
                    }
                }
            ]
        }
    ]
}

調用postObject時,需要提供Search對象而不是nil (當前為postObject:nil )。 這告訴RestKit使用哪個請求映射來發送請求。 由於未進行設置,因此服務器可能沒有所有必需的信息(無法用提供的信息來區分)。

暫無
暫無

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

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