使用ObjectMapper和Alamofire时,对象总是为零

时间:2015-07-20 20:36:12

标签: json swift alamofire

似乎无论我做什么,我在Swift中转换的JSON变量总是为零。我按照AlamofireObjectMapper的文件跟踪了这封信,似乎没有任何效果。

func loginAF(username: String, password: String, url: String) {

        Alamofire.request(.GET, url, parameters: ["username": username, "passoword": password]).responseObject { (response: Resultset?, error: NSError?) in
            println(response!)
            println(response?.account?.mongoId)
        }
    }

最后一个印刷语句是nil

这是Resultset结构,它应该从中获取:

struct Resultset: Mappable {
    var account: Account?

    init(){}
    init?(_ map: Map) {
        mapping(map)
    }

    mutating func mapping(map: Map) {
        account <- map["account"]
    }
}

struct Account: Mappable {
    var mongoId: Int?

    init() {}
    init?(_ map: Map) {
        mapping(map)
    }

    mutating func mapping(map: Map) {
        mongoId <- map["mongoId"]
    }
}

我确信我能获得有效的数据,现在就可以了解它的样子:

{"errors":[],"resultset":{"account":{"mongoId":"55a7961fdf5d3ca421ff4cb9"},"locations":[{"......

如果有人知道任何其他方法可以轻松地将JSON转换为对象,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:1)

请求中的一个参数叫做passoword,其次我认为解决方案是你不能使用结构。

  

这是因为序列化程序需要返回AnyObject作为结果,并且结构不是AnyObject,这是一种耻辱,因为结构是完美的值类型。

我从这里得到了这个 http://kaandedeoglu.com/2015/02/20/From%20JSON%20to%20Type-safe%20objects%20in%20Swift/

此外,在文档中我刚看到了类 我希望这可以帮助你