2015-12-06 37 views
-2

我无法使用解析的JSON中的值。每当我尝试使用字典中的一个值时,它就会说它是可选的。它不会让我转换为int。任何帮助解开价值和转换为int将不胜感激。对不起,我的无知,我刚开始使用IOS和Swift。我用下面的key =“uso”显示我的麻烦。在Swift中展开问题

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") 

回答

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)!) 
}