我有以下儿子字符串,它通过网络服务发送给我。我试图在其中访问我的字典,我收到错误。有人可以建议吗?
我的json String:
{"status":200,"message":"Registration success","firstname":"tommy","lastname":"tang","userId":17,"email":"t@gm.com"}
我尝试访问'状态'
的代码 do{
let jsonObject = try JSONSerialization.jsonObject(with: jsonData, options: [])
print("jsonObject: \(jsonObject)")
guard
let regArray = jsonObject as? [[String:String]] else{
print("json messed up")
}
guard
let status = regArray["status"] as? String else{
print("error")
}
print("status: \(status)")
}catch let error{
print("print error: \(error)")
}
}else if let requestError = error{
print("error detail: \(requestError)")
}else{
print("unexpected error")
}
我得到的错误是'不能下标类型[[String:String]]的值,其索引类型为String'
即使我使用
let regArray = jsonObject as? [[String:Any]]
我得到了同样的错误
答案 0 :(得分:0)
UserID和状态为Int。所以它必须是[String : Any]
。这是一个简单的字典数组。
在代码中,更改
status = regArray["status"] as? String
到
status = regArray["status"] as? Int
因为您将Int值指定为字符串,因此无法实现。