Swift 为什么反序列化JSON会给每个值0

Swift 为什么反序列化JSON会给每个值0,swift,swift3,alamofire,Swift,Swift3,Alamofire,我正在使用Alamofire进行GET请求-它给我状态代码200,结果很好,但是在我将json反序列化到数组中,然后我尝试将值签名到自定义对象中之后,它总是给我0 json看起来像: { "user" : [ { "name" : "Jack", "lastname" : Sparrow }, { "name" : "John", "lastname" : Smith } ], "count" : 2

我正在使用Alamofire进行GET请求-它给我状态代码200,结果很好,但是在我将json反序列化到数组中,然后我尝试将值签名到自定义对象中之后,它总是给我0

json看起来像:

{
  "user" : [
    {
      "name" : "Jack",
      "lastname" : Sparrow
    },
    {
      "name" : "John",
      "lastname" : Smith
    }
   ],
   "count" : 2
}
 Alamofire.request(BREADCRAMB_URL, method: .get, parameters: parameters).responseJSON { response in

            print("Get default graph request \(response.request!)")
            print("Get default graph response \(response.response!)")

            guard response.result.value != nil else {
                completion(nil, 0)
                return
            }
            var objects: [User] = []
            let jsonArray = JSON(data: response.data!)
            let count = jsonArray["count"].intValue
            print(jsonArray.count)
            for(_ , dict) in jsonArray {
                print(dict.count)
                let thisObject = User.init(name: dict["name"].stringValue, lastname: dict["lastname"].stringValue)
                print(thisObject)
                objects.append(thisObject)
            }
            completion(objects, count)
            print(objects.count)
            for o in objects {
                print(o.name)
                print(o.lastname)
            }
        }
然后在我的模型中,我有属性name和lastname,initname:String,lastname:String{self.name=name self.lastname=lastname}

GET请求如下所示:

{
  "user" : [
    {
      "name" : "Jack",
      "lastname" : Sparrow
    },
    {
      "name" : "John",
      "lastname" : Smith
    }
   ],
   "count" : 2
}
 Alamofire.request(BREADCRAMB_URL, method: .get, parameters: parameters).responseJSON { response in

            print("Get default graph request \(response.request!)")
            print("Get default graph response \(response.response!)")

            guard response.result.value != nil else {
                completion(nil, 0)
                return
            }
            var objects: [User] = []
            let jsonArray = JSON(data: response.data!)
            let count = jsonArray["count"].intValue
            print(jsonArray.count)
            for(_ , dict) in jsonArray {
                print(dict.count)
                let thisObject = User.init(name: dict["name"].stringValue, lastname: dict["lastname"].stringValue)
                print(thisObject)
                objects.append(thisObject)
            }
            completion(objects, count)
            print(objects.count)
            for o in objects {
                print(o.name)
                print(o.lastname)
            }
        }
提前谢谢

使用库。它使映射对象变得容易

//内部视图控制器

var objects = [User]()

var serverResponse : ServerResponce

private func downloadMainViewData(){

        let params = ["":""]

        Alamofire.request(serverUrl, method: .get, parameters: params, encoding: JSONEncoding.default, headers: nil)
            .responseObject{ (response: DataResponse<ServerResponse>) in

                self.serverResponse = response.result.value

                if(self.serverResponse != nil){
                    self.objects = (response.result.value?.slideShow)!
                }

        }

    }
//类服务器响应一次

    import ObjectMapper

    class ServerResponse : Mappable{

        var slideShow : [Show]?


        required init?(map: Map) {

        }

        func mapping(map: Map) {

            objects <- map["user"]


        }

    }
//类用户

import ObjectMapper

class Uesr: Mappable{

    var name : String?
    var lastName : String?

    required init(map: Map){

    }

    func mapping(map: Map) {

        let transform = TransformOf<Int, String>(fromJSON: { (value: String?) -> Int? in
            // transform value from String? to Int?
            return Int(value!)
        }, toJSON: { (value: Int?) -> String? in
            // transform value from Int? to String?
            if let value = value {
                return String(value)
            }
            return nil
        })

        name <- map["name"]
        lastName <- map["lastname"]

    }
}

因为您提供的JSON是一个字典,而不是顶级数组?让jsonDict=JSONdata:response.data!;让jsonUserArray=jsonDict[user]//然后使用jsonUserArray进行循环