gpt4 book ai didi

json - AlamofireObjectMapper,嵌套的 JSON 结构在序列化时始终为 nil

转载 作者:行者123 更新时间:2023-11-30 13:12:56 24 4
gpt4 key购买 nike

我正在使用 AlamofireObjectMapper 序列化来自服务器的 JSON 响应。目前,通过 get 方法,我有以下结构化 JSON 响应:

 {
data : {
[
{ ID: 4,
...
PointList : {
[
{

},
{}
]
}

},
{
...
}

]
}
}

我将最外层的对象定义为一个名为 BrowsableObjectList 的自定义 class,其中我定义了将 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 JSON 列表。我该怎么办?

最佳答案

我没有将最里面的类设置为Mappable

 class Point: Mappable{

}

呃!

关于json - AlamofireObjectMapper,嵌套的 JSON 结构在序列化时始终为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38536507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com