我正在使用一个iOS应用程序(使用Swift2),我遇到了一些问题,包括应用程序中的JSON数据。对于“注册”,我使用的是移动号码验证(比如whatsapp),所以当我使用以下JSON数据(http://data.okfn.org/data/core/country-codes/r/country-codes.json)在tableView中显示国家和每个国家的拨号代码时,它会显示一个错误。
我在写这段代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let urlPath = "http://data.okfn.org/data/core/country-codes/r/country-codes.json"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { data, response, error -> Void in
if (error != nil) {
print(error)
} else {
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
print(jsonResult["name"])
} catch _ {}
}
})
task.resume()
}}
调试区域显示如下:
{
DS = AL;
Dial = 355;
FIFA = ALB;
FIPS = AL;
GAUL = 3;
IOC = ALB;
"ISO3166-1-Alpha-2" = AL;
"ISO3166-1-Alpha-3" = ALB;
"ISO3166-1-numeric" = 008;
ITU = ALB;
MARC = aa;
WMO = AB;
"currency_alphabetic_code" = ALL;
"currency_country_name" = ALBANIA;
"currency_minor_unit" = 2;
"currency_name" = Lek;
"currency_numeric_code" = 008;
"is_independent" = Yes;
name = Albania;
"name_fr" = Albanie;
},那么,还有其他方法可以访问国家的名称和拨号代码吗?我不知道为什么它显示了一个错误/零
谢谢!
发布于 2015-12-03 17:17:05
jsonResult是一组字典。无法通过键订阅数组,这将导致错误。
替换do - catch部件的代码打印所有国家的名称和拨号代码。字典类型甚至可以被限制为[String:String]。
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [[String:String]]
for country in jsonResult {
print(country["name"]!, country["Dial"]!)
}
} catch let error as NSError { print(error) }https://stackoverflow.com/questions/34072066
复制相似问题