2016-09-19 4 views
4

Ich verwende AlamofireObjectMapper, wann immer die Antwort jeden Nullwert enthält, einen Fehler gibt,ObjectMapper Antwort serialisiert fehlgeschlagen

„FEHLER: Fehler Domain = com.alamofireobjectmapper.error-Code = 2“ ObjectMapper fehlgeschlagen Antwort serialisiert . "{fehlgeschlagen NSLocalizedFailureReason = ObjectMapper Antwort serialisiert.} Userinfo ="

Dies ist, wie ich

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)   
       } 
      } 
     } 

Und das ist meine Klasse Datamodel

am anfordernden 10
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"] 
    } 
} 

Ich habe auch versucht, leere Parameter hinzufügen, wie diese API erfordert keine Parameter und fügte auch Standard URl-Codierung, aber keine Hilfe.

Ich weiß nicht, wo ich etwas vermisse, dieser Code funktioniert gut, wenn es keine Null in der API-Antwort gibt. Bitte helfen Sie !!

Dank

Antwort

2

Ihr Code hat kein Problem, aber die JSON in der URL ist falsch formatiert. Das Temperaturfeld des dritten Objekts ist leer.

+0

Das ist meine Frage, warum es die Antwort nicht serialisiert, wenn in der Antwort ein Nullwert vorhanden ist, da es möglicherweise einen Fall gibt, in dem ich eine Nullantwort erhalte und der Code diesen Nullwert durch einen leeren Wert ersetzen sollte . – Aakash

+0

Ich möchte nur wissen, ob es eine Möglichkeit gibt, wie ich NULL-Werte durch entsprechende Standardwerte ersetzen kann. – Aakash

+0

Ich verstehe Sie, aber die JSON ist falsch formatiert und nicht null Wert im Temperaturfeld des dritten Elements des Arrays. – danbarbozza

Verwandte Themen