无法将 JSON 数据解析为 Swift
Posted
技术标签:
【中文标题】无法将 JSON 数据解析为 Swift【英文标题】:Trouble parsing JSON data into Swift 【发布时间】:2018-11-03 14:59:27 【问题描述】:我正在尝试将来自 Web 服务的 JSON 数据解析到我的 Swift 中
我的网络浏览器上的 JSON 输出:
["code":0,"message":"Check Username and Password....","userid":""]
Swift 代码:
Alamofire.request(URL_USER_LOGIN, method: .post, parameters: parameters).responseJSON
response in
//printing response
print(response)
if let userJSON = response.result.value
let userdata:Dictionary = userJSON as! Dictionary<String, Any>
let message:Dictionary = userdata["message"] as! Dictionary<String, Any>
print(message)
我想将 JSON 中的消息元素用于我的代码。但是我得到以下输出和错误:
(
code = 1;
message = "Login Successfull";
userid = 236;
)
Could not cast value of type '__NSSingleObjectArrayI' (0x10fd94b98) to 'NSDictionary' (0x10fd958b8).
2018-11-03 20:15:10.762929+0530 testDisplayTable[44610:2871941]
Could not cast value of type '__NSSingleObjectArrayI' (0x10fd94b98) to 'NSDictionary' (0x10fd958b8).
如何成功获取message和print的值?有人可以向我展示我的案例的正确代码吗?提前致谢!
【问题讨论】:
与其更改 Swift 代码(无论如何你必须更改message
的类型),更有效的解决方案是更改服务器上的 php 代码以发送字典。
How do I use JSON element with alamofire的可能重复
【参考方案1】:
这是一个数组而不是字典
if let userdata = userJSON as? [[String:Any]]
if let message = userdata[0]["message"] as? String
print(message)
【讨论】:
以上是关于无法将 JSON 数据解析为 Swift的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 Swift 2.0 中的 json 解析数据时出错?
Swift json 解析错误:无法将 NSCFConstantString 类型的值转换为 NSArray