Swift 从字典中提取字符串值<;字符串,任意对象>;迅速地

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 }

我只是想在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
}

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]