在Swift中解析JSON后解包值

时间:2014-10-29 14:17:57

标签: ios json string swift

我目前坚持把我的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”]的值展开为字符串

总是失败

1 个答案:

答案 0 :(得分:1)

let SummID = SummonerID["id"]! as NSString有两种失败方式:

  1. SummonerID字典没有键“id”的值,因此当您尝试强制解包时它会失败
  2. SummonerID["id"]!不属于NSString类型(或者可以转换为String的类型),因此当您尝试强制转换时它会失败。
  3. 如果没有看到您输入的内容或确切的错误消息,我们无法确切地知道它是哪一个。

    旁注:使用大写字符启动变量名称不是Swift风格。最好将camelCase用于变量,函数和方法;将UpperCamelCase用于类,结构,枚举和枚举案例。