我在使用已解析的JSON中的值时遇到问题。每当我尝试使用字典中的值时,它表示它是可选的。它不会让我转换为int。任何帮助解开值并转换为int的帮助都将受到赞赏。对不起我的无知,我刚刚开始使用IOS和Swift。我在下面用key =" uso"显示我的问题。
if let json = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String : String]]{
for line in json{
//unwrap it with if let.
print(line)
let uso = String(line["uso"])
print(uso)
}
}
else {
let jsonStr = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("Error could not parse JSON: \(jsonStr)")
}
这是我的输出:
["capacidad": "15", "uso": "5", "unidad": "sanfrancisco", "telefono": "num"]
Optional("5")
["capacidad": "15", "uso": "5", "unidad": "pediatricouniversitario", "telefono": "num"]
Optional("5")
["capacidad": "15", "uso": "7", "unidad": "sanjorge", "telefono": "num"]
Optional("7")
["capacidad": "20", "uso": "4", "unidad": "himacaguas", "telefono": "num"]
Optional("4")
["capacidad": "20", "uso": "8", "unidad": "himabayamon", "telefono": "num"]
Optional("8")
["capacidad": "10", "uso": "8", "unidad": "sanlucas", "telefono": "num"]
Optional("8")
["capacidad": "15", "uso": "11", "unidad": "auxiliomutuo", "telefono": "num"]
Optional("11")
答案 0 :(得分:2)
实际上循环中的注释行很好地说明了要做什么
for line in json{
//unwrap it with if let.
if let uso = line["uso"], usoInt = Int(uso) {
print(usoInt)
}
}
由于类型[[String:String]]
已知,因此不需要类型转换。
或者,如果uso
始终存在且始终代表数字
for line in json{
//unwrap it with if let.
let uso = line["uso"]!
print(Int(uso)!)
}