【问题标题】:AlamofireObjectMapper, nested JSON structure is always nil when serializedAlamofireObjectMapper,嵌套的 JSON 结构在序列化时总是 nil
【发布时间】:2016-07-22 23:17:19
【问题描述】:

我正在使用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,即使端点返回了Points 的正确JSON 列表。我该怎么办?

【问题讨论】:

    标签: json swift alamofire objectmapper


    【解决方案1】:

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

     class Point: Mappable{
    
     }
    

    呃!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 2015-09-03
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2019-08-03
      相关资源
      最近更新 更多