2016-03-04 61 views
1

我想首次使用AlamofireObjectMapper来解析一个json响应。AlamofireObjectMapper in swift

的回应是:

{ 
    "city": { 
     "total": 19, 
     "data": [ 
      { 
       "business_model": 2, 
       "type": "Hotel" 
      }, 
      { 
       "business_model": 2, 
       "type": "Hotel" 
      } 
     ] 
    } 
} 

我映射这样的:

class CityResponse: Mappable { 

    var location: String? 
    var data: [Data]? 

    required init?(_ map: Map){ 

    } 

    func mapping(map: Map) { 
     data <- map["city.data"] 

    } 
} 

class Data: Mappable { 

    var business_model: String? 
    required init?(_ map: Map){ 

    } 

    func mapping(map: Map) { 
     business_model <- map["business_model"] 
    } 
} 

而且在我的控制器:

Alamofire.request(.GET, "MY_URL").responseArray { (response: Response<[Data], NSError>) in 

    print("res: \(response)") 

    let forecastArray = response.result.value 

    if let forecastArray = forecastArray { 
     for forecast in forecastArray { 
      print("model is : \(forecast.business_model)") 
     } 
    } 
} 

它给我的错误映射。

回答

0

你需要指出你的阵列的路径: responseArray( “数据”)

Alamofire.request(.GET, "MY_URL").responseArray("data") { (response: Response<[Data], NSError>) in 

    print("res: \(response)") 

    let forecastArray = response.result.value 

    if let forecastArray = forecastArray { 
     for forecast in forecastArray { 
      print("model is : \(forecast.business_model)") 
     } 
    } 
}