Swift 从字典中提取字符串值<;字符串,任意对象>;迅速地
我只是想在Swift中从json响应中提取一些字符串值,但我找不到一种简单的方法Swift 从字典中提取字符串值<;字符串,任意对象>;迅速地,swift,Swift,我只是想在Swift中从json响应中提取一些字符串值,但我找不到一种简单的方法 var result: Dictionary<String, AnyObject> = [ "name" : "Steve", "surname" : "Jobs"] if let name = result["name"] { //Warning: Constant 'name' inferred to have 'AnyObject', which may be unexpected }
var result: Dictionary<String, AnyObject> = [ "name" : "Steve", "surname" : "Jobs"]
if let name = result["name"] {
//Warning: Constant 'name' inferred to have 'AnyObject', which may be unexpected
}
if let name = result["name"] as String {
//Error: (String, AnyObject) is not convertible to String
}
var结果:Dictionary=[“name”:“Steve”,“姓氏”:“Jobs”]
如果let name=result[“name”]{
//警告:常量“name”推断为具有“AnyObject”,这可能是意外的
}
如果让name=result[“name”]作为字符串{
//错误:(字符串,任意对象)不能转换为字符串
}
正确的方法是什么
干杯此答案上次针对Swift 5.4和Xcode 12.5进行了修改
在Swift中,
String
是一个结构,而不是一个类。您需要使用Any
,而不是AnyObject
let result:[String:Any]=[“name”:“Steve”,“姓氏”:“Jobs”]
铸造可以选择使用as?
而不是as
如果让name=result[“name”]as?串{
//无误
}
尝试在Swift中处理JSON数据的更好方法
var result: Dictionary<String, AnyObject> = [ "name" : "Steve", "surname" : "Jobs"]
let json = SwiftJSON.JSON(object: result)
if let name = json["name"].string {
//do what you want
} else {
//print the error message if you like
println(json["name"])
}
var结果:Dictionary=[“name”:“Steve”,“姓氏”:“Jobs”]
让json=SwiftJSON.json(对象:result)
如果let name=json[“name”].string{
//做你想做的
}否则{
//如果愿意,请打印错误消息
println(json[“名称”])
}
[KeyType:ValueType]
不起作用(使用未声明的类型“KeyType”)。我使用Xcode beta 4。嗯。。。那是一个占位符。在您的情况下,您应该使用[String:Any]
。