【问题标题】:RestKit - POST response object mappingRestKit - POST 响应对象映射
【发布时间】:2011-11-25 08:00:20
【问题描述】:

我的 RESTful 网络服务 (Rails) 上有方法“getBuses”。该方法需要返回 我的 JSON 格式的巴士列表。但是,当我发送“/getBuses.json”请求时,我 需要发送

params = [NSDictionary 
dictionaryWithObjectsAndKeys: @"2011-08-16", @"datum", @"TRUE", 
@"fromSerbia", nil]; 

我发布参数是因为我需要过滤响应(仅针对特定 特定日期游览)。 然后,我期待这样的回应:

{ 
  "buses" : [ { 
    "bus_number" : "1", 
    "created_at" : "2011-08-15T23:07:52Z", 
    "id" : 1, 
    "lat" : 44.815, 
    "long" : 20.4665, 
    "model" : "Setra", 
    "registar_number" : "123456", 
    "seats" : 50, 
    "tour_id" : 1, 
    "updated_at" : "2011-08-15T23:07:52Z" 
  }, { 
    "bus_number" : "2", 
    "created_at" : "2011-08-15T23:07:52Z", 
    "id" : 2, 
    "lat" : 44.812, 
    "long" : 20.465, 
    "model" : "Mercedes", 
    "registar_number" : "2234", 
    "seats" : 60, 
    "tour_id" : 1, 
    "updated_at" : "2011-08-15T23:07:52Z" 
  } ] 
} 

我只需要带有 Bus 对象的 NSArray。 您能给我一些代码示例如何发出这个请求并使用 RestKit 进行对象映射吗?

【问题讨论】:

    标签: objective-c ios json restkit


    【解决方案1】:

    正如我在 IRC 频道中告诉你的,在你的 RKClient 实例中你可以使用这个方法:

    (NSURL *)URLForResourcePath:(NSString *)resourcePath queryParams:(NSDictionary *)queryParams

    所以你应该这样做:

    [objectManager.mappingProvider setMapping:busesMapping forKeyPath:@"buses"];
    
    params = [NSDictionary dictionaryWithObjectsAndKeys: @"2011-08-16", @"datum", @"TRUE", @"fromSerbia", nil];
    NSURL *someURL = [objectManager.client URLForResourcePath:@"/service/getLocations.json" queryParams:params];
    
    [objectManager loadObjectsAtResourcePath:[someURL absoluteString] delegate:self];
    

    该方法使用 resourcePath 和您作为参数提供的参数构建一个有效的 URL。然后你需要使用 NSURL 对象的 absoluteString 来设置它。希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      相关资源
      最近更新 更多