我目前坚持将JSON Parse解析为字符串,这是我的代码

var SummName = "xxxxx"
        var APIKEY = "xxxx-xxx-43d5-8647-xxxx"



        let urlPath0 = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/"+SummName+"?api_key="+APIKEY
        let url0 = NSURL(string: urlPath0)
        let session0 = NSURLSession.sharedSession()
        let task0 = session0.dataTaskWithURL(url0!, completionHandler: {data, response, error -> Void in
            if (error != nil) {
                println(error)
            } else {
                let summonorID_JSON = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
                var SummonerID = summonorID_JSON["smirknaitia"] as NSDictionary

                let SummID = SummonerID["id"]! as NSString
                println(SummID)
                let urlPath1 = "https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/"+SummID+"?api_key="+APIKEY


            }
        })

        task0.resume()


通过将SummonerID [“ ID”]的值展开为字符串,总是失败

最佳答案

let SummID = SummonerID["id"]! as NSString可以通过两种方式失败:


SummonerID词典没有键“ id”的值,因此当您尝试强制拆包时它会失败
SummonerID["id"]!不是NSString类型(或可以转换为String的类型,例如),因此当您尝试强制转换时它会失败。


在没有看到您输入的内容或确切的错误消息的情况下,我们无法真正分辨出它到底是哪个。

旁注:以大写字符开头的变量名不是Swift样式。最好对变量,函数和方法使用camelCase;对类,结构,枚举和枚举用例使用UpperCamelCase。

10-08 08:04