我正在使用AlamofireObjectMapper
来序列化来自服务器的JSON响应。目前,使用get方法,我有以下结构化JSON响应:
{
data : {
[
{ ID: 4,
...
PointList : {
[
{
},
{}
]
}
},
{
...
}
]
}
}
我定义的最外层对象是一个名为class
的自定义BrowsableObjectList
,我在其中定义了将json反序列化为对象的映射
class BrowsableObjectList : Mappable {
var data : [BrowsableObject]?
required init?(_ map: Map){
}
func mapping(map: Map) {
data <- map["data"]
}
}
同样,我将BrowsableObject
定义为
class BrowsableChronicle : Mappable {
var pointList : [Point]?
required init?(_ map: Map){}
func mapping(map: Map) {
pointList <- map["PointList"]
}
}
其中引用[Point]
的列表,其中Point
是定义为另一个可映射对象的自定义类。
class Point{
var axisX : Int?
var axisY : Int?
required init?(_ map: Map){
}
func mapping(map: Map) {
axisX <- map["AxisX"]
axisY <- map["AxisY"]
}
}
问题在于我在服务器上调用端点,我在浏览器中检查了PointList
定义的值,当我访问它时始终为nil
。
这是我称之为端点的地方:
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)
}
}
}
问题是BrowsableObject.pointList
总是nil
,即使端点返回Point
s的正确JSON列表。我该怎么办?
答案 0 :(得分:0)
我没有将最里面的类设置为Mappable
。
class Point: Mappable{
}
杜!