2016-09-19 2 views
4

Я использую AlamofireObjectMapper, когда ответ содержит какой-либо нулевое значение, он дает ошибку,ObjectMapper не удалось сериализовать ответ

"FAILURE: Error Domain = com.alamofireobjectmapper.error Code = 2" ObjectMapper не удалось сериализовать ответ . "UserInfo = {NSLocalizedFailureReason = ObjectMapper не удалось сериализовать ответ.}"

Это, как я прошу

let URL = "https://demo6336282.mockable.io/myapi" 
     Alamofire.request(URL).validate().responseObject { (response: DataResponse<WeatherResponse>) in 

      let weatherResponse = response.result.value 
      print(weatherResponse?.location) 

      if let threeDayForecast = weatherResponse?.threeDayForecast { 
       for forecast in threeDayForecast { 
        print(forecast.day) 
        print(forecast.temperature)   
       } 
      } 
     } 

И это мой DataModel Класс

import Foundation 
import ObjectMapper 
import AlamofireObjectMapper 

class WeatherResponse: Mappable { 
    var location: String? = "" 
    var threeDayForecast: [Forecast]? = [] 

    required init?(map: Map){ 

    } 

    func mapping(map: Map) { 
     location <- map["location"] 
     threeDayForecast <- map["three_day_forecast"] 
    } 
} 

class Forecast: Mappable { 
    var day: String? = "" 
    var temperature: Int? = 0 
    var conditions: String? = "" 

    required init?(map: Map){ 

    } 

    func mapping(map: Map) { 
     day <- map["day"] 
     temperature <- map["temperature"] 
     conditions <- map["conditions"] 
    } 
} 

Я также попытался добавить пустые параметры, так как этот api не требует параметров, а также добавил кодировку URl по умолчанию, но никакой помощи.

Я не знаю, где чего-то не хватает, этот код отлично работает, когда в ответе api нет никакого значения. Пожалуйста помоги!!

Благодаря

ответ

2

Ваш код не имеет никаких проблем, но JSON в URL имеет неверный формат. Поле температуры третьего объекта пуст.

+0

Это мой вопрос, почему он не сериализует ответ, когда в ответе есть нулевое значение, поскольку может возникнуть случай, когда я могу получить нулевой ответ, и в то время мой код должен заменить этот нуль пустым значением , – Aakash

+0

Я просто хочу знать, есть ли способ заставить его заменить нулевые значения соответствующими значениями по умолчанию. – Aakash

+0

Я вас понимаю, но json искажен и не равен нулю в поле температуры третьего элемента массива. – danbarbozza

Смежные вопросы