Ich verwende , um JSON-Antworten vom Server zu serialisieren. Derzeit mit einer Get-Methode habe ich folgende strukturierte JSON Antwort:AlamofireObjectMapper, geschachtelte JSON-Struktur ist immer Null, wenn serialisiert
{
data : {
[
{ ID: 4,
...
PointList : {
[
{
},
{}
]
}
},
{
...
}
]
}
}
Das äußerste Objekt i als benutzerdefiniertes bin definieren class
BrowsableObjectList
genannt, wo ich die Zuordnung definiere die json in das Objekt deserialisieren als
class BrowsableObjectList : Mappable {
var data : [BrowsableObject]?
required init?(_ map: Map){
}
func mapping(map: Map) {
data <- map["data"]
}
}
Ähnlich definieren I BrowsableObject
als
class BrowsableChronicle : Mappable {
var pointList : [Point]?
required init?(_ map: Map){}
func mapping(map: Map) {
pointList <- map["PointList"]
}
}
ist, die auf eine Liste vonverweistDabei ist Point
eine benutzerdefinierte Klasse, die als ein anderes abbildbares Objekt definiert ist.
class Point{
var axisX : Int?
var axisY : Int?
required init?(_ map: Map){
}
func mapping(map: Map) {
axisX <- map["AxisX"]
axisY <- map["AxisY"]
}
}
Das Problem ist in meinem Server Aufruf an den Endpunkt, die ich in meinem Browser überprüfen als Werte für PointList
mit definiert, ist immer nil
, wenn ich auf sie zugreifen.
Hier ist, wo ich den Endpunkt nennen:
func getChronicleEntries(pageIndex: Int, pageSize : Int, completionHandler: ([BrowsableChronicle]?, NSError?) ->()){
print("page index is : \(pageIndex)")
Alamofire.request(.GET, "http://myendpoint.com/getThing?", parameters: ["pageindex": "\(pageIndex)", "pagesize": "\(pageSize)"]).responseObject { (response: Response<BrowsableObjectList, NSError>) in
if let userResponse = response.result.value {
if let data = userResponse.data {
let browsableObjectArray : [BrowsableObject] = data
completionHandler(browsableObjectArray, nil)
}
} else {
Logger.logSomething(response.result.error!.localizedDescription)
completionHandler(nil, response.result.error)
}
}
}
Das Problem ist, dass BrowsableObject.pointList
ist immer nil
obwohl der Endpunkt die richtige JSON Liste der Point
s zurückgibt. Was soll ich machen?