【发布时间】:2017-04-27 08:01:52
【问题描述】:
我有以下通过网络服务发送给我的子字符串。我正在尝试访问其中的字典,但出现错误。请问有人可以建议吗?
我的 json 字符串:
{"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]]
我遇到同样的错误
【问题讨论】:
-
您正在创建字典数组,而您的数据是字典格式。创建字典
-
这很简单:您的 JSON 是顶级字典(嗯,它根本就是字典)。那么
let jsonSerialized as? [String:Any]?